Hi,
nun hab ich ein noch schwerwiegenderes Problem.
Nachdem ich jetzt den Dateinamen aus dem opendialog.filename befreit habe (siehe unten) hab ich jetzt nur noch die "Zähler" übrig.
(Bsp: DSC01234.jpeg ->01234).
Das ergebnis hab jetzt ich in einer string-variablen. wert: 01234). Ich möchte jetzt aber automatisch die nächste Datei ins Programm laden, also DSC01235 laden. Also wandle ich den string in eine integer zahl um, um eins hoch zu zählen.
Aber nun hab ich nicht mehr "01234" sondern nur noch "1234".
(was auch irgendwie logisch erscheint)
Ich hab bis jetzt keine gute Lösung gefunden um dass zu ändern.
Könnt ihr mir bitte einen vorschlag liefern, wie ich es schaffe entweder den string zu ändern oder den string mit der vorderen null in integer zu konvertieren.
Mfg MoD
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Mit Format() ein Ausgabeform definieren mit führenden Nullstellen, solange das Dateinamensshema fest definiert ist ist das kein Problem...
Evtl. universeller wäre es eine Liste aller jpeg-Dateien des Verzeichnisses zu ermitteln, diese zu sortieren und dann die folgende Datei aus dieser Liste zu wählen.
Gruß
Borlander
Hi!
Als Ergänzung zu Borlanders Antwort:
Du kannst natürlich einfach die Länge des erzeugten Strings ("1234" = 4) bestimmen und dann Vorne die nötige Anzahl an Nullen anfügen. Oder gleich mit einem Ersetzen der letzten Stellen in einem Vorgabestring arbeiten:
"DSC00000" ist dann die Vorgabe und die ersetzt die letzten Stellen durch den gewandelten String.
Ich hab' gerade kein Delphi installiert und nur die BorlandPascal-Syntax im Kopf, deshalb gebe ich mal vorsichtshalber keine Quelltextbeispiele an. ;-)
Bis dann
Andreas
oky hab doch die lösung die ich mir gedacht habe, und andreas42 ;)
habs so gelöst:
strrest:='' ;
for x:=1 to anzahlnull do
strrest:=strrest+'0';
strrest+(inttostr(zahler));
grüße MoD
also ich muss doch auf deinen Vorschlag mit der Liste zurück kommen, da die Bilder nicht immer fortlaufend nummeriert sind und somit mein Programm aus dem Tritt kommt, wenn auf einmal dass nächste Bild nicht geladen werden kann!
Aber die gesamten Datei eines Ordners in so eine Liste zu laden, übersteigt mein (momentan) Programmier Effeff.
Die Liste kann ruhig sichtbar sein, zb stell ich mir da jetzt ein memo vor.
Dann kann man auch Datei aus anderen Verzechnis in die Liste laden und dann erst das Prog. darüber laufen lassen.
Aber Schluß mit der Zukunftsmusik.
Kannst du mir bitte ein paar Anhaltspunkte geben wie ich sowas bewerkstellige?!
Gruß Tobi
Nabend Tobi,
also nach Datein suchen kannst Du mit FindFirst() und FindNext(), wenn Du nach einer dieser beiden Funktionen in der Hilfe suchst, findest Du auch gleich ein Beispiel zur Durchführung der Dateisuche.
Die gefundenen Dateienamen fügst Du dann entweder (sofern sie sichtbar sein sollen) in eine TListBox ein, oder in eine TStringList (falls eine TListBox nicht benötigt wird). Mit setzen der Eigenschaft Sorted kannst Du die Einträge anschließend sortieren lassen, die Methode IndexOf() liefert die Position des Listeneintrages...
Gruß
Borlander
Hi,
Hab soweit alles hinbekommen.
Ich lasse mir jetzt die Dateien+Dateipfad in einem StringGrid anzeigen und sammle die Dateinamen in einer Stringlist.
Dass funktioniert fehlerfrei, ich muss jetzt nur noch aus der Stringlist die einzelnen Einträge auslesen und weiterverabreiten.
Aber dass dürfte ich jetzt auch hinbekommen, wenn nicht poste ich wieder ;)
Also vielen Dank für die HIlfe und die Tipps!
Gruß Tobi
Prima :-)
Ich lasse mir jetzt die Dateien+Dateipfad in einem StringGrid anzeigen und sammle die Dateinamen in einer Stringlist.
Warum in einem Grid? Wärum lässt Du nicht alles direkt in der Stringlist anzeigen?
Gruß
Borlander
Hi,
damit ich mehrere Dateieigenschaften mit ausgeben kann.
Z.B. Dateiname, Pfad, Größe...
Ist irgendwie ansehnlicher als nur die Dateinamen in ner Listbox...
Parallel sammle ich auch noch alles in ner Stringlist!
Grüße Tobi
Dann schau Dir mal die Componente TListView an, mit der müsttest Du alle Deine Wünsche erschlagen können ;-)
Gruß
Borlander
Hi Borlander,
ja ich schaus mir mal morgen an und werde dann sehen ob es die "ultimative" Lösung ist.
Hatte leider seither keine Zeit merh an dem Programm zu basteln...
Bis die Tage >Tobi