PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eigene Programmvorstellungen und fertige Codeschnipsel...


i_hasser
07.05.2004, 22:16
... können hier rein.

Mit der Zeit schreibt man sich ja immer mehr nützliche Dinge auf die man später nicht mehr verzichten will, oder man schreibt sich ein Programm das man um nichts auf der Welt mehr hergeben möchte - dann immer her damit ;).

Bitte mit ausführlichen Infos, also Sprache, Zweck usw - und bitte nicht den Code direkt reinschreiben, dann wirds ein bissel arg unübersichtlich (bei fertigen Programmen sowieso *chatt*).

Falls ihr irgendwelche Nutzungsbedingungen stellen wollt (zb. nur für nichtkommerzielle Zweche) bitte auch mit angeben, oder gleich einen Link auf irgend eine Lizenz dazuposten (zb. GPL).


-------------------

So, hier nun ein kleines Inhaltsverzeichnis (das hoffentlich nicht lange klein bleibt ;))

fertige Programme

RSS-Ticker-Bar (http://www.planet3dnow.de/vbulletin/showthread.php3?s=&postid=1731081#post1731081)
Plattform: Win32
Lizenz: eigene (Website)

Die RSS-Ticker-Bar ist eine Leiste (vergleichbar mit der Taskbar), die am oberen Bildschirm mit einer Laufschrift Nachrichtenüberschriften anzeigt und die Nachrichten in einem Internetbrowser öffnet. Als Quellen dienen im Internet erhältliche RSS-Dateien, die mitunter mehrmals täglich aktualisiert werden.
Thx@Seemann

TicTacToe (http://www.planet3dnow.de/vbulletin/showthread.php3?s=&postid=1860256#post1860256)
Sprache: Java
Plattform: Java VM (BSD, Linux, OS/2, Unix, Win32, .......)
Lizenz: Freeware (inkl. Source)

da ich zur Zeit Java lerne (nebenbei C) hab ich mal Versucht mein Wissen in ein mehr oder weniger sinnvolles Programm zu testen! Heraus gekommen ist ein kleines Spiel was wohl jeder kennt... Tic Tac Toe oder auch 3 in einer Reihe. Ein Spiel für zwischen durch ^^ allerdings ist der Computer noch nicht wirklich gut, was ich aber noch ändern werde. Weiterhin würd ich gern versuchen ein Netzwerk-Modus einzubauen... da muss ich aber erstmal schauen ob das mit nem Java-Applet funktioniert! Das ganze ist Freeware und der Source Code liegt im gleichen Verzeichnis...
Thx@Sieben

SoftwareList (http://www.planet3dnow.de/vbulletin/showthread.php3?s=&postid=2080144#post2080144)
Sprache: ???
Plattform: Win32
Lizenz: Freeware

ich hab auch ein fertiges Programm anzubieten.
Es nennt sich SoftwareList und ist Freeware.
Es ist für all die Leute, die die Software-Liste von Windows auslesen wollen, um nach einer Neuinstallation des OS noch zu wissen, welche Software installiert war.
Dazu kann man die ausgelesene Liste in einer Textdatei speichern und/oder ausdrucken. Und damit man noch weiß, wann und auf welchem Rechner die Liste erstellt wurde, werden folgende Infos mit in die Datei gespeichert bzw ausgedruckt: Rechnername, IP-Adresse, Betriebssystem, Nutzername (und ob er Admin-Rechte hat) sowie aktuelles Datum und Uhrzeit.
Thx@Dalai

Codeschnipsel

Visual Basic (classic)
Inhalt eines RAR-Archiv auslesen (TiKu) (http://www.planet3dnow.de/vbulletin/showthread.php3?s=&postid=1619238#post1619238)
Common Dialogs ohne ActiveX Control (TiKu) (http://www.planet3dnow.de/vbulletin/showthread.php3?s=&postid=1644072#post1644072)
Windows-Tooltip-Control Interface (TiKu) (http://www.planet3dnow.de/vbulletin/postings.php3?s=&action=getip&postid=1772186)

Delphi
Haufenweise weiterer Programmcode (\²³/) (http://www.planet3dnow.de/vbulletin/showthread.php3?s=&postid=1617458#post1617458)

PHP
Upload Formular (eRoZion) (http://www.planet3dnow.de/vbulletin/showthread.php3?s=&postid=1619192#post1619192)
EMails mit Anhang versenden (Shootist) (http://www.planet3dnow.de/vbulletin/showthread.php3?s=&postid=1620139#post1620139)

\²³/
09.05.2004, 06:38
Hier was für Delphi:

Einen INet-Link in ein Programm intiegrieren (http://www.delphi-treff.de/content/edhonline/index.php4?id=162)

Das war nur ein Beispiel: Es gibt aber beim delphi-treff unzählige solcher Sachen, die ich hier nicht alle nennen möchte, deswegen nur ein Link: http://www.delphi-treff.de/content/edhonline

Nochwas:

Ein uverzichtbares Plugin für den Borland Delphi-Objektinspektor:
dxMultiLineEx (http://www.delphipages.com/edit/count.cfm?ID=3309) Damit kann man einfacher in Labelfelder u. ä. Zeilenumbrüche generieren, als das mit '1. Zeile'+#13+'2. Zweile' zu machen.

eRoZion
10.05.2004, 02:40
PHP: [Download (http://home.t-online.de/home/erozion/files/myupload.zip)]
Diese Class wurde erschaffen um Dateien über ein HTML-Formular auf einen Webserver zu laden.

TiKu
10.05.2004, 07:48
[Visual Basic 6.0]

Ein rar-Archiv analysieren. Download (http://www.timosoft-software.de/stuff/p3dn/RAR-Reader.zip)

perpetuum.mobile
10.05.2004, 18:35
[PHP]
email mit Anhang versenden, ganz einfach, ohne Konfiguration, funzt auch bei lycos&CO

LINK (http://mitglied.lycos.de/ilyrics/open/anwendung_email.zip)

TiKu
25.05.2004, 14:59
[Visual Basic 6.0]
Klassen, um ohne ActiveX-Control die Common Dialogs nutzen zu können. Download (http://www.timosoft-software.de/stuff/p3dn/CD.zip)

Seemann
14.07.2004, 20:42
So, dann will ich mal anfangen und meine RSS-Ticker-Bar vorstellen.

Die RSS-Ticker-Bar ist eine Leiste (vergleichbar mit der Taskbar), die am oberen Bildschirm mit einer Laufschrift Nachrichtenüberschriften anzeigt und die Nachrichten in einem Internetbrowser öffnet. Als Quellen dienen im Internet erhältliche RSS-Dateien, die mitunter mehrmals täglich aktualisiert werden.

Im Moment ist das Programm noch als Beta Version 0.9 gekennzeichnet, aber zumindest ich hatte (auf mehreren Rechnern) keine Stabilitätsprobleme. Bugs, Probleme oder auch Anregungen nehme ich jedoch gerne entgegen!

Wer sich dafür interessiert, dem sei der Download empfohlen:
[URL gibt's nicht mehr - geändert, 06.02.2009]

i_hasser
14.07.2004, 23:09
Platform? (schätze mal Win32)

Seemann
15.07.2004, 03:57
Original geschrieben von intel_hasser
Platform? (schätze mal Win32)

Ja, genau...

TiKu
09.08.2004, 06:32
[Visual Basic 6]
Eine Klasse, die das Windows-Tooltip-Control kapselt. Es werden so ziemlich alle Features des Tooltips von Windows XP unterstützt. Das Control ist Unicode-fähig, kann also Unicode-kodierten Text anzeigen.

Download (http://www.timosoft-software.de/stuff/p3dn/ToolTip.zip)

i_hasser
09.08.2004, 15:49
Hab das Inhaltsverzeichniss mal angefangen.
Falls euer Code lizensiert ist, wäre es schön wenn ihr das noch dazuschreiben könntet.

TiKu
09.08.2004, 17:36
Wenn bei meinen geposteten Codes nix weiter dazusteht, heißt das "macht damit was ihr wollt".;D

Sieben
29.09.2004, 00:14
Huhu,


da ich zur Zeit Java lerne (nebenbei C) hab ich mal Versucht mein Wissen in ein mehr oder weniger sinnvolles Programm zu testen! Heraus gekommen ist ein kleines Spiel was wohl jeder kennt... Tic Tac Toe oder auch 3 in einer Reihe. Ein Spiel für zwischen durch ^^ allerdings ist der Computer noch nicht wirklich gut, was ich aber noch ändern werde. Weiterhin würd ich gern versuchen ein Netzwerk-Modus einzubauen... da muss ich aber erstmal schauen ob das mit nem Java-Applet funktioniert! Das ganze ist Freeware und der Source Code liegt im gleichen Verzeichnis...

Also mein Prog:
TicTacToe (http://home.arcor.de/siebn/TicTacToe/test.html)
Plattform: Begrenzung auf ein System sollte durch die VM aufgehoben sein... getestet aber unter Win32
Prog.Sprache: Java
Release Version: 0.88

Features:
-Single, Multiplayer
-Grafische Darstellung...


Geplante Features:
-Bessere KI
-Eventuell Netzwerkmodus


Bugs,Kommentare und Verbesserungsvorschläge bitte an sieben-@gmx.de

gruß! Sieben!

i_hasser
14.10.2004, 16:00
Damit sich das alles nicht so verteilt und das halbe Progger Forum aus fixierten Threads besteht hab ich hier mal 2 Threads zusammengetackert...

catamaran
01.01.2005, 17:11
Ich möchte gerne pac32k vorstellen. Ich habe das Spiel schon vor längerer Zeit programmiert, mich aber erst jetzt zu einem final Release durchgerungen. Eine ältere Version war auch mal auf einer PC-Action Ausgabe zu finden.

Es handelt sich um einen Pacman-Clone mit ein paar neuen, aber nicht weltbewegenden Features.


http://www.crew99.com/pac32kjpg1.jpg


Das Spiel ist mit Visual C++ 6 geschrieben und verwendet Opengl für die Grafikausgabe.

Für Lob oder Kritik in welcher Form auch immer bin ich sehr dankbar 8)


pac32k download (http://www.crew99.com/downloads/pac32k.zip)

PuckPoltergeist
01.01.2005, 17:29
Original geschrieben von catamaran
Ich möchte gerne pac32k vorstellen.

Gibts für das Teil auch den Quellcode, oder bleibt der unter Verschluß? Wie schauts mit Ports auf andere Systeme aus (via SDL z.B.)?

SlurmMcKenzie
01.01.2005, 17:41
Original geschrieben von Seemann
So, dann will ich mal anfangen und meine RSS-Ticker-Bar vorstellen.

Die RSS-Ticker-Bar ist eine Leiste (vergleichbar mit der Taskbar), die am oberen Bildschirm mit einer Laufschrift Nachrichtenüberschriften anzeigt und die Nachrichten in einem Internetbrowser öffnet. Als Quellen dienen im Internet erhältliche RSS-Dateien, die mitunter mehrmals täglich aktualisiert werden.

Im Moment ist das Programm noch als Beta Version 0.9 gekennzeichnet, aber zumindest ich hatte (auf mehreren Rechnern) keine Stabilitätsprobleme. Bugs, Probleme oder auch Anregungen nehme ich jedoch gerne entgegen!

Wer sich dafür interessiert, dem sei der Download empfohlen:
http://www.sebastian-toepfer.de/progs/rsstickerbar.php


link geht nit
dabei wollte ich es aber haben :(

gibts alternativen ?
oder notfalls nehm ich es auch per email an ;D

edit: ok geht wieder der download ;D

catamaran
02.01.2005, 10:07
Original geschrieben von PuckPoltergeist
Gibts für das Teil auch den Quellcode, oder bleibt der unter Verschluß? Wie schauts mit Ports auf andere Systeme aus (via SDL z.B.)?


Der Quellcode bleibt unter Verschluss. ;D

Auch Ports für andere Systeme wird es nicht geben. Ich befürchte auch, daß ich bei einem Port die 32k Grenze überschreite.

Dalai
07.02.2005, 17:35
Hallo Leuts,

ich hab auch ein fertiges Programm anzubieten.
Es nennt sich SoftwareList und ist Freeware.
Es ist für all die Leute, die die Software-Liste von Windows auslesen wollen, um nach einer Neuinstallation des OS noch zu wissen, welche Software installiert war.
Dazu kann man die ausgelesene Liste in einer Textdatei speichern und/oder ausdrucken. Und damit man noch weiß, wann und auf welchem Rechner die Liste erstellt wurde, werden folgende Infos mit in die Datei gespeichert bzw ausgedruckt: Rechnername, IP-Adresse, Betriebssystem, Nutzername (und ob er Admin-Rechte hat) sowie aktuelles Datum und Uhrzeit.

Ich sage aber eines gleich vorweg: es kann durchaus sein, dass eine Software zwar installiert ist, aber nicht in der Liste des Progs erscheint. Das ist normal, denn nicht jedes Programm steht "ordnungsgemäß" in der Registry, die von meinem Prog ausgelesen wird.

Herunterladen kann man es unter http://www.drivehq.com/file/df.aspx/publish/bifi82/PublicFolder/SoftwareList, Screenshots des Programms gibts dort natürlich auch. Sorry, die Homepage ist erst im Aufbau... FunPic will nur Homepages hosten (OK für mich), aber ich brauche Webspace zur Dateiablage -> URL geändert.

Bitte bei Fehlern (Bugs), Problemen oder Vorschlägen für neue Funktionen an die im Programm genannte eMail-Adresse schreiben.

MfG Dalai

Fonce
08.12.2006, 15:23
n thx an Dalai
das Programm SoftwareList echt echt nit schlecht und sehr nützlich

mfg
Fonce

Dalai
27.07.2007, 00:02
das Programm SoftwareList echt echt nit schlecht und sehr nützlich
Danke für die Blumen.
Leider (oder sollte ich sagen: zum Glück) gibt's inzwischen viel bessere Programme, z.B. -> MyUninstaller (http://www.nirsoft.net/utils/myuninst.html) von Nir Sofer. Das Teil kann noch erheblich mehr als SoftwareList; die Liste lässt sich in ordentlichem HTML abspeichern, gibt Versionsnummern mit an usw.
Deswegen werde ich auch keine weitere Arbeit in SoftwareList stecken (hatte ich kurz nach Fertigstellung vor).

MfG Dalai

Dalai
02.08.2007, 00:50
Hey Leute,

Mein Delphi-Compiler hat mir mal wieder n neues Programm ausgespuckt ;D
Es heißt DesktopTime und kann die Uhrzeit, das Datum und sonstigen Text anzeigen (in einem eigenen Fenster, aber es soll so scheinen, als wäre das ganze aufm Desktop ;) )

Es wird Transparenz/Alpha Blending unterstützt, die Schriftart, -farbe, -größe etc pp ist frei einstellbar, die Titelleiste lässt sich ausblenden ebenso wie der Button in der Taskleiste.

Das Programm (Freeware) ist hauptsächlich für BartPE ohne XPE entwickelt worden und läuft dort auch sauber (ebenso wie unter Windows 2000, XP, 2003; nicht aber unter 95, 98, ME; Witzda ist ungetestet!).

Bilder sagen mehr als tausend Worte, deswegen verweise ich mal auf die Bilder im Anhang.

Herunterzuladen geht's auch ;D (enthält jeweils das Programm, eine CHM-Hilfe und eine INI)
RAR: http://www.drivehq.com/file/df.aspx/publish/bifi82/PublicFolder/DesktopTime/DesktopTime_2.0.rar
ZIP: http://www.drivehq.com/file/df.aspx/publish/bifi82/PublicFolder/DesktopTime/DesktopTime_2.0.zip

(Konstruktive) Kritik, Verbesserungsvorschläge, aber auch Lob etc. sind willkommen!

MfG Dalai

Fonce
01.03.2008, 16:14
So hab mal nen eigenen kleinen Benchmark geschrieben.

genaueres hier
http://www.planet3dnow.de/vbulletin/showthread.php?t=334321

april.shower
21.11.2009, 21:11
computer machen bekanntlich auch arbeit (die es sonst überhaupt nicht gäbe), die daten, die sich so ansammeln, wollen verwaltet werden; bei mir sammeln sich z.b. spielfilme und daten über spielfilme an. wer deswegen nicht gleich access anwerfen oder sich eine mediendatenverwaltung wie expression media 2 zulegen will, kann auch schon mit excel und ein paar zeilen vba-code ordnung schaffen
der folgende Code ist ein ausschnitt aus einem vba-programm für excel, das ich trotz expression media 2 immer noch regelmässig benutze
der code geht davon aus, dass es zwei sheets gibt, das erste ist wie folgt aufgebaut:

zeile1 mit spalten-überschriften, spalte A: Filmtitel, B ...... J, ab spalte K namen von an einem film mitwirkenden schauspielern
zeile 2 leer (der besseren übersichtlichkeit wegen) oder wie zeile 3 (dem programm ist das egal)
zeile3, ab hier die eintragungen der filmtitel (und entlang der zeile die infos zu dem titel) in (mehr oder weniger) alphabetischer reihenfolge (für das programm ist das unerheblich); dabei sind die titel-eintragungen der übersichtlichkeit wegen unterbrochen von Zeilen in denen nur die Anfangsbuchstaben stehen; es können zwischendrin auch mal leerzeilen vorkommen (weil man was gelöscht hat, oder zu viel zwischenraum eingefügt hatte), auch kommt es vor, dass zwar ein filmtitel schon eingetragen ist, aber die restlichen infos (insbesondere die actors) noch fehlen

in den spalten B bis I stehen infos, die jetzt mal vernachlässigbar sind, spalte J muss leer bleiben
filmtitel können soviele eingetragen werden wie excel zeilen bereitstellt, schauspieler können (theoretisch) so viele eingetragen werden wie excel ab spalte K noch spalten bereitstellt (praktischerweise beschränkt man das natürlich auf die hauptdarsteller und 1 oder zwei herausragende oder interessante nebenrollen)

wenn man einige filmtitel mit infos wie beteiligte actors eingetragen hat, ergibt sich ab spalte K ein nach rechts und unten offener bereich von namen, der gänzlich ungeordnet ist (ausser dem umstand, dass die namen auf einer zeile zu einem film gehören); namen können auch mehrfach auftreten (wenn mehr als ein film eingetragen ist, an denen der actor teil hatte), die anzahl der actors, die pro film eingetragen werden, ist unterschiedlich (der bereich hat also nach rechts eine unregelmässig verlaufende grenze

das die actors alphabetisch sortiert benötigt werden das programm macht nun folgendes:
es präpariert zunächst das erste blatt, das oben geschildert wurde, ein bisschen um eine definierte ausgangslage zu erzeugen, insbesondere um den bereich der actors zum einen klar abzugrenzen, zum anderen ununterbrochen zu machen, damit dieser bereich in einem zug in eine variable gelesen werden kann;
das program geht davon aus, dass es ein zweites (leeres) blatt gibt;
als nächstes wird eine zweistufige (alphabetische) sortierung der namen in gang gesetzt: die erste stufe besteht darin, dass die mit "A" beginnnenden actors in der Spalte A des zweiten blattes landes, die "B's" in spalte B usw. die zweite stufe besteht dann darin, die einzelnen spalten in sich alphabetisch zu sortieren und Doubletten (zb. sigourney weaver in alien und in alien 3) zu löschen; die erste stufe der sortierung geschieht zu laufzeit der das array auslesenden schleife,
die zweite stufe dagegen nicht ebenfalls zu dieser laufzeit, sondern in einem eigenen darauf folgenden prozess
ergebnis ist auf blatt 2 eine liste von actors, die spaltenmässig und innerspaltenmässig alphabetisch sortiert ist

der code kann einfach in die vba-entwicklungsumgebung kopiert, einfach an eigene bedürfnisse angepasst und z.b. an einen schaltbutton gebunden werden, den man auf blatt 1 ablegt

Option Explicit
Option Base 1
'Code by Klaus Mees, april.shower@hotmail.de
'

Public Sub OrderingActors()
'
'increasing performance
Application.ScreenUpdating = False
'
'konstanten
Const c1 = "N.N."
'
'blatt aktivieren
Worksheets("Filmtitel").Activate
'
'prepairing worksheet(1)
'=======================
'deleting empty rows in sheet 1
der
'
'determining number of at present used rows
Dim z1 As Long
z1 = 1
Do Until IsEmpty(Cells(z1, 1))
z1 = z1 + 1
Loop
'do stops at the first empty row, i.e. z1-1 = number of used cells
'checking column k for empty cells,
'if empty in k for reasons of alphabetical order denotion in column a, then copying the letter from a to column k
'if for reasons of missing information about actors, then write down "N.N." to column k
Dim e1 As Long
For e1 = 1 To z1 - 1
If IsEmpty(Cells(e1, 11)) Then
If Cells(e1, 1).Characters.Count = 1 Then
'to copy value from column a to k
Cells(e1, 11).Value = Cells(e1, 1).Value
Else
'column 1 contains a film title
Cells(e1, 11).Value = c1
End If
End If
Next
'range("K3").currentregion containing now the hole unintersected range of actors
'
'inserting empty row after row one (delimiting actor range from head row)
Worksheets("Filmtitel").Rows(2).Insert
'
'reading data into array
'=======================
'defining actor range in sheet >filmtitel<
Dim b1 As Range
'
Set b1 = Worksheets(1).Range("K3").CurrentRegion
'b1.Select
'
'counting columns
Dim z2 As Long
z2 = b1.Columns.Count
'b1 reading into a 1-based 2-dimensional array (row, column)
Dim matrix1 As Variant
matrix1 = b1.Value
'
'well-ordered copying from array to worksheet(2)
'===============================================
'one-dimensional array delivering sort kriteria for worksheet(2)
Dim ar1 As Variant
ar1 = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
'
'both sort and transfer routine
Dim e3 As Long, e4 As Long, z3 As Long, z4 As Long, z5 As Long, p1 As Long
'row numerator array matrix1
z3 = 1
'column numerator array matrix1
z4 = 1
'column numerator actors worksheet
z5 = 0
'
Do
'do delivers the characters as kriteria from ar1-array
'column numerator runs until the end of array ar1
z5 = z5 + 1
'e4 varies colums
For e4 = z4 To z2
'e3 varies rows
For e3 = z3 To UBound(matrix1)
'some don't cares
If Not (matrix1(e3, e4) = c1 Or IsEmpty(matrix1(e3, e4)) = True Or Len(matrix1(e3, e4)) = 1) Then
'if the kriterium >first character< matches
If Left(matrix1(e3, e4), 1) = ar1(z5) Then
'determining first empty row
p1 = 1
Do While Not IsEmpty(Worksheets(2).Cells(p1, z5))
p1 = p1 + 1
Loop
'copying matches to actors sheet into the next unused cell of the applicable column
Worksheets(2).Cells(p1, z5).Value = matrix1(e3, e4)
'
End If
End If
Next e3
Next e4
Loop Until z5 = UBound(ar1)
'
'fine finishing actors sheet
'===========================
'columns in actors table sorting alphabetically at any one time, deleting doubles, shifting up the rest of the column
Dim z6 As Long, z7 As Long, z8 As Long, z9 As Long, z10 As Long, t1 As Long, t2 As Long, k2 As Long, sa1 As Range
Set sa1 = Worksheets(2).Range("A1").CurrentRegion
'denotes columns, z6 = column index
For z6 = 1 To z5
'sorting column in worksheet(2)
sa1.Columns(z6).Sort key1:=sa1.Columns(z6), order1:=xlAscending, Header:=xlNo, ordercustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'
't2 aggregating the cells to delete in each column
t2 = 0
'
'last used row
k2 = 0
'k2 = Worksheets(2).Cells(1, z6).End(xlDown).Row 'doesn't work if only one or zero used rows!
Do Until IsEmpty(Worksheets(2).Cells(k2 + 1, z6))
k2 = k2 + 1
Loop
'
If k2 > 0 Then
'wenn k2 = 0 then go to next column
'
For z7 = 1 To k2
'adapting z7-loop to the actual number of rows of the column
If z7 >= k2 - t2 Then
Exit For
End If
'
'both counting doubles and denoting range index
t1 = 0
'z8-border = z7-border, because of unknown number of doubles
For z8 = 1 To k2
'in the case of two or more instances of a name take care of the same either capitalization or use of small initial letters
'since the comparison operator >=< works 'binary' by default, that is case sensitive
'as option the instruction "option compare text" can be declared before the procedure in order to prevent case sensivity
If Worksheets(2).Cells(z7, z6).Value = Worksheets(2).Cells(z7 + z8, z6).Value Then
t1 = t1 + 1
t2 = t2 + 1
Else
Exit For
End If
Next z8
'gathering doubles and deleting, shifting up the rest
If t1 > 0 Then
'
For z9 = 1 To t1
't1 times processing of deleting of the z7+1 th row and shifting up the rest
'by which all doubles are away from row z7 and the end-row is shifted up t1 rows
Worksheets(2).Cells(z7 + 1, z6).Delete xlShiftUp
Next z9
End If
Next z7
End If
'count actor names
z10 = z10 + k2 - t2
Next z6
'
'bildschirm wieder aktualisieren
Application.ScreenUpdating = True
'
MsgBox "Updating Actors Done" & vbCrLf & "Your Table of Actors now contains " & z10 & " Names", vbApplicationModal
'
End Sub
'
Sub der()
'delete empty rows
Dim r1 As Integer, lr1 As Integer
lr1 = Cells.SpecialCells(xlCellTypeLastCell).Row
For r1 = lr1 To 1 Step -1
If Application.CountA(Rows(r1)) = 0 Then
Rows(r1).Delete
End If
Next r1
End Sub
'
'

Gruß Thomas!
16.01.2011, 17:44
Name: Wecker!
Sprache: Java
Lizenz: Freeware, ist doch klar :). Source kommt, sobald er auskommentiert ist.

Ich weiß nicht, ob alles funktioniert, ist auch kein Quelltext im Moment dabei, da noch nicht auskommentiert, aber ich hab einen Wecker programmiert, für all die Leute, die ihren PC durchlaufen lassen und deren Wecker einfach nicht laut genug sind :P.

http://chili-martin.co.de/file_download/1/wecker.rar

How-To:
In dem Verzeichnis der .jar Datei liegt eine "music.txt". Da könnt ihr eintragen, was als Wecker benutzt werden soll. Nur die erste Zeile wird beachtet, d.h. ihr könnt so mehrere URLs einfügen und dann halt die, die ihr haben wollt in die erste Zeile schieben. Das ganze geht auch mit Dateien.

Beispielinhalt der music.txt für den Bayern3 Livestream:

http://gffstream.ic.llnwd.net/stream/gffstream_w3b
//Hier kann alles mögliche stehen.


Beispielinhalt für eine Musikdatei:

file:dateiname.mp3
//Hier kann alles mögliche stehen.


Der Wecker kann nur .mp3 Streams abspielen, ob .mp3-Livestreams oder normale .mp3-Dateien ist dabei jedoch egal. Muss nur in der richtigen Syntax geschrieben werden.

Updates werden noch eingepflegt.

TODO:

[] URL direkt im Fenster eingeben
[] DropDown Menü mit vorgefertigten Einträgen
[] aussagekräftigere Animation

KNOWN-BUGS:

Sound funktioniert mit OpenJDK unter Linux nicht. Unter der Sun Version von Java sollte es kein Problem darstellen. Leider ist die aber Closed Source :(

Update:

OpenJDK ist nicht Schuld, scheint an pulseaudio zu liegen.

Verbesserungsvorschläge sind gern gesehen!

EDIT: Lob natürlich auch :).

Gruß Thomas!
30.03.2011, 18:57
Ich bin derzeit am Entwickeln meines eigenen mp3 Players unter Java. Hier schonmal ein Vorgeschmack:

http://rapidshare.com/files/455148198/puremp3.jar

Update (2. April 2011):

http://rapidshare.com/files/455598109/puremp3.jar

Kann jetzt mit Drag and Drop von Außen umgehen.

Gruß Thomas!
02.04.2011, 21:02
Sry für Doppelpost.

JesusRocks
06.04.2011, 09:54
Womit du nun einen Dreifachpost geschaffen hast;D

Wecker klingt ja mal gut, aber den PC könnte ich nicht die Nacht durchlaufen lassen (leise ist er, aber mein Schlaf nicht sehr tief*lol*).
Ich hab kaum Ahnung was das Schreiben von Programmen angeht, darum frage ich mal interessehalber... Wäre es machbar dem Programm z.B. zu sagen "um 05:30 fährst du den PC wieder hoch und schmeisst den Wecker an"?

Gruß Thomas!
06.04.2011, 15:57
Den Wecker müsste ich leider nochmal überarbeiten. Da geht nämlich was nicht so wie es soll. :P

Du könntest den Wecker schon so programmieren, dass er per Autostart funktioniert, aber den PC wirst du wohl oder übel mit Zeitschaltuhr versehen müssen (per Hardware).

JesusRocks
06.04.2011, 20:05
Und wie lässt sich das realisieren?
Gibts da ne Einstellung im BIOS für?
Weil PC+Marantz sollte sogar mich mal pünktlich ausm Bett kriegen ;D

Gruß Thomas!
06.04.2011, 21:36
Hmmm. Solltest du den Player verwenden wollen, dann musst du dabei aufpassen, dass du die Datei auch wirklich im Verzeichnis starest, indem es sich auf befindet, sonst wird das mit dem mp3 Abspielen nichts...

Wegen der Einstellung im Bios:

Kann ich dir nicht wirklich sagen, denke aber nicht...

Gerade im Netz gefunden (inkl Fehler):

Ich w?rd's so machen:

1. Zeitschaltuhr so einstellen, dass sie immer AN is, ausser eine Minute bevor der PC angehen soll (da is ma eine Minute AUS) und dann im BIOS einstellen, dass der PC angeht, sobald Saft da is

ODER

2. Wenn man nen Server im Haus hat (so wie ich), da ein Programm einrichten, dass den PC per Wake-on-lan einschaltet

Quelle:

http://www.lima-city.de/thread/computer-per-timer-anschalten

EDIT:

Hab grad nochmal extra nachgeschaut. Also in den ACPI Options gibts zumindest bei mir eine Einstellung dafür. Bloß der Wecker von mir kann das noch nicht, da müsstest du dir wohl einen neuen suchen :P.

Sabroe SMC
06.04.2011, 21:51
Also in meinem Asus P6T kann ich die Einschaltzeit durchaus einstellen. Ich hatte es so eingestellt das der Rechner immer um 7.00 Uhr morgens sich eingeschaltet hat und mittels eines anderen Programms (z.B. Agata Shutdown Pro) um 15.00 Uhr wieder ausgeschaltet wurde. Da brauchste keine Zeitschaltuhr für.

JesusRocks
07.04.2011, 08:40
Hey, das sind ja mal Neuigkeiten;D
Wenn ich es jetzt dank euch und meiner Musik morgens wieder schaffe pünktlich aufzustehen wäre das doch was*lol*
Ich werd mein BIOS mal nach solchen Funktionen durchforsten, und falls das nicht die erhoffte Wirkung bringt werde ich eben mal gucken ob ich noch eine Zeitschaltuhr finde:)

Fl3X
07.04.2011, 19:13
Müsste auch ohne Zeitschaltuhr gehen. Bei MediaPortal z.b. geht der Rechner mit einem Plugin in den Standby-Modus (S3) und wacht 5min vor der programmierten Aufnahme wieder auf.

JesusRocks
08.04.2011, 11:44
Jep, heute um 07:00 ist der PC angegangen und hat mich so davor gerettet dass ich hoffnungslos verpenn;D
Jetzt fehlt nurnoch die Musik, die Autostartlösung gefällt mir aber nich so gut, weils ein bisschen doof wäre wenn der mir jedesmal losröhrt nur weil ich den PC anschmeiß*lol*

Aber danke schonmal für den guten Tip mit dem BIOS, da wäre ich ja schonmal weiter;D

perpetuum.mobile
10.04.2011, 20:35
Ein studentischer Verein, in dem ich arbeite, hat eine eigene Software geschrieben, um Sitzungprotokolle einfacher zu schreiben und zu verwalten.
Ein kurzer Umriss in Stichpunkten:

Jeder kann eigene Agendapunkte einstellen,
das Protokoll wird zu jedem Punkt erstellt,
es gibt eine LDAP-Anbindung zur Authentifizierung,
läuft z.B. auf einem TomcatServer,
das Protokoll wird an alle Teilnehmer verschickt, genauso wie vorab eine Agenda
uvm.


Wer Interesse hat, kann die Software bei Sourceforge (https://sourceforge.net/projects/agenda2/) anschauen bzw. mit einwickeln. Momentan ist erst nur der Source online, da noch 2 Bugs drin sind. Ein Release folgt demnächst.

Gruß Thomas!
20.04.2011, 21:04
Codeschnipsel:

Java MP3 Player Thread.

Hier zu finden: https://gist.github.com/912328

/**
* @author Martin Braun
* Player inspired by Matthias Pfisterer's examples on JavaSound
* (jsresources.org). Because of the fact, that this Software is meant
* to be Open-Source and I don't want to get anybody angry about me
* using parts of his intelligence without mentioning it, I hereby
* mention him as inspiration, because his code helped me to write this class.
*/

import java.io.IOException;
import java.net.URL;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.SourceDataLine;


public class Player extends Thread
{

private static final int EXTERNAL_BUFFER_SIZE = 128000;
private AudioInputStream audioInputStream;
private SourceDataLine line;
private AudioFormat audioFormat;
private DataLine.Info info;
private boolean pause = false;
private boolean stop = false;

public Player(URL url)
{
try
{
insert(url);
}
catch(Exception e)
{
System.out.println("Error while inserting the URL");
}

}

public void insert(URL url)
{
try
{
audioInputStream = AudioSystem.getAudioInputStream(url);
}
catch (Exception e)
{
System.out.println("Error while parsing URL to File/Stream");
}
if (audioInputStream != null)
{
AudioFormat format = audioInputStream.getFormat();
if ( format.getEncoding() != AudioFormat.Encoding.PCM_SIGNED )
{
AudioFormat newFormat = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
format.getSampleRate(),
16,
format.getChannels(),
format.getChannels() * 2,
format.getSampleRate(),
false );
AudioInputStream newStream = AudioSystem.getAudioInputStream( newFormat, audioInputStream );
format = newFormat;
audioInputStream = newStream;
}
}
audioFormat = audioInputStream.getFormat();
info = new DataLine.Info(SourceDataLine.class,audioFormat);
try
{
line = (SourceDataLine) AudioSystem.getLine(info);
line.open(audioFormat);
line.start();
}
catch(Exception e)
{
System.out.println("Error while starting playback");
}
}

public void run()
{
int nBytesRead = 0;
int bufferSize = EXTERNAL_BUFFER_SIZE;
if(audioFormat != null)
{
bufferSize = (int) audioFormat.getSampleRate() * audioFormat.getFrameSize();
System.out.println(audioFormat);
}
byte[] abData = new byte[bufferSize];
System.out.println("Buffer Size: " + bufferSize);
while (nBytesRead != -1 && !stop && line != null)
{
synchronized(this)
{
while (pause && !stop)
{
try
{
System.out.println("paused");
wait();
}
catch(Exception e)
{
}
}
notify();
}
if(!stop)
{
try
{
nBytesRead = audioInputStream.read(abData, 0, abData.length);
}
catch (IOException e)
{
nBytesRead = -1;
}
if(nBytesRead != -1);
{
try
{
line.write(abData, 0, nBytesRead);
}
catch(IllegalArgumentException e)
{
//Has to be caught, because if the stream ends, there may occur an error,
//that the amount of bytes read is not valid (occurred under OpenJDK).
}
}
}
}
if(line != null)
{
line.drain();
line.close();
}
}

public synchronized void pause()
{
pause = !pause;
if(!pause)
notify();
}

public synchronized void stop_()
{
stop = true;
notify();
}

public synchronized boolean isStopped()
{
return stop;
}

public AudioFormat getAudioFormat()
{
return audioFormat;
}

public AudioInputStream getAudioInputStream()
{
return audioInputStream;
}

}

[MTB]JackTheRipper
21.04.2011, 08:09
Gewöhn dir mal an mehr zu kommentieren. Der Code ist zwar recht simpel und jetzt bist du noch drin, wie sieht das aber später mal aus?

Gruß Thomas!
21.04.2011, 14:48
Aye! Der Code stammt noch aus den Anfängen meines Programms, und da habe ich einiges versäumt. Der komplette Thread ist noch wüster... Leider.

Lynxeye
21.04.2011, 15:01
Dann sieh das jetzt als deine Chance dir das Prinzip des Refactorings anzueignen und dann dauerhaft einzusetzen.

Refactoring ist wie Zähneputzen: du kommst eine zeitlang auch ohne aus, dauerhaft wird das aber nicht durchgehen.

Gruß Thomas!
21.04.2011, 15:29
Ich hab gerade aus schlechtem Gewissen gerade das Auskommentiert, was ich gestern geschrieben habe.

Lynxeye
21.04.2011, 16:15
Ich hab gerade mal deinen letzten Commit angesehen: kommentiere nicht jede Zeile. Das verleitet stark dazu zu kommentieren, wie das Programm etwas macht. Das ist aber nicht der Sinn eines Kommentars, denn wie etwas gemacht wird kann jeder halbwegs erfahrene Programmierer aus dem Code lesen. Schreibe größere Kommentarblöcke, in denen du festhälst, was der Code macht und was du versuchst damit zu erreichen.

Das ist wirklich hilfreich, erleichtert das Verständnis von fremdem Code und hilft dir bei der Fehlersuche in Code, den du vor längerer Zeit geschrieben hast. Denn Logikfehler aus dem Programmablauf zu lesen ist schwer; wenn du dir vorher in einem Kommentar klar machst, was du mit dem Code erreichen willst, ist so etwas um einiges einfacher.

Gruß Thomas!
21.04.2011, 16:43
Meinst du, das reicht, wenn ich es in jeder Methode in

/**
*
*/

dazupinsel?

Gruß Thomas!
30.04.2011, 21:03
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;

public class Main
{
private static int x_coordEvent=-1;
private static int y_coordEvent=-1;
private static JFrame frame;

public static void main(String args[])
{
frame = new JFrame("Drag me!");
frame.getContentPane().setLayout(null);
frame.setUndecorated(true);
frame.pack();
frame.setSize(300,200);
frame.setLocationRelativeTo(null);
frame.addMouseMotionListener(new MouseMotionListener()
{
public void mouseDragged(MouseEvent e)
{
if(x_coordEvent==-1 || y_coordEvent==-1)
{
System.out.println("Initializing");
x_coordEvent = e.getX();
y_coordEvent = e.getY();
}
PointerInfo pointerInfo = MouseInfo.getPointerInfo();
Point point = pointerInfo.getLocation();
int x = (int)point.getX();
int y = (int)point.getY();
frame.setLocation(x-x_coordEvent, y-y_coordEvent);
}
public void mouseMoved(MouseEvent e)
{
System.out.println("Resetting");
x_coordEvent = -1;
y_coordEvent = -1;
}
});
frame.setVisible(true);
}
}


Mal ein kleines Beispiel, wie man ein undekoriertes JFrame rumschubst.

Und der Schmarren ist dabei entstanden xD:

http://chili-martin.co.de/file_download/7/OnScreenSnake.jar



Copyright © 1999 - 2011 Planet 3DNow!
Rechtliche Hinweise