Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Listbox Datei umbenennen (https://www.delphipraxis.net/101589-listbox-datei-umbenennen.html)

capo 16. Okt 2007 00:03


Listbox Datei umbenennen
 
Guten Abend

Ich lasse mir den Inhalt von einem Ordner in einer Listbox anzeigen.
Delphi-Quellcode:
idFTP1.List(listbox1.Items, '*.*', false);
Die Dateien in dem Ordner sind alphabetisch geordnet z.b.
a.jpg
b.jpg
c.jpg
d.jpg

Wird nun eine neue Datei hinzugefügt, möchte ich dass die Datei entsprechend der vorhandenen Dateien umbenannt wird.
Diese Datei soll dann umbenannt werden in f.jpg, die nächste Datei die hinzugefügt wird müsste dann g.jpg benannt werden

Wie kann ich das machen?

Gruss Capo

calculon 16. Okt 2007 00:17

Re: Listbox Datei umbenennen
 
Hi,

soll das ganze nur von a-z gehen oder noch weiter?
Im ersten Fall könntest du mit copy(Listbox1.items.strings[listbox1.count-1],1,1) den Buchstaben des letzten Eintrages herausfinden und deine Datei entsprechend umbenennen.

Gruß

Calculon
--

capo 16. Okt 2007 00:23

Re: Listbox Datei umbenennen
 
Zitat:

Zitat von calculon
soll das ganze nur von a-z gehen oder noch weiter?

Auch weiter wenn möglich aa, bb oder so.

Zitat:

Zitat von calculon
Im ersten Fall könntest du mit copy(Listbox1.items.strings[listbox1.count-1],1,1) den Buchstaben des letzten Eintrages herausfinden und deine Datei entsprechend umbenennen.

Wie kann ich dann weiter machen?
Ich stell mir das nicht so einfach vor.
Habe also herausgefunden das g.jpg mein letztes jpg ist.
Woher weiß mein Proggy was nach g kommt?

Grüsse
capo

calculon 16. Okt 2007 00:37

Re: Listbox Datei umbenennen
 
Zitat:

Zitat von capo
Wie kann ich dann weiter machen?
Ich stell mir das nicht so einfach vor.

Also den jeweils letzten Buchstaben (direkt hinter dem Punkt vor der Dateiendung) des letzten Listbox-Eintrags bekommst du so:
Delphi-Quellcode:
copy(Listbox1.items.strings[listbox1.count-1], AnsiPos('.',Listbox1.items.strings[listbox1.count-1])-1,1)); // <-- setzt voraus, dass nirgendwo sonst ein Punkt im Pfad oder dem Dateinamen vorkommt, da sonst ein falscher Buchstabe kopiert wird!!
Du kannst so vorgehen, dass diese zunächst geprüft wird und der nächste Eintrag erhöht wird (wenn <> 'z'). Wenn = 'z' dann ein 'a' zwischen dem letzten 'z' und dem Punkt vor der Dateiendung zwischenquetschen. Hoffe du hast mich kapiert. Mein Hirn ist zu so einer späten Stunde nicht mehr in der Lage delphifremde Wörter auszudrücken....

Gruß

Calculon
--

capo 16. Okt 2007 00:40

Re: Listbox Datei umbenennen
 
Hallo
ich guck mir das alles erstmal an, und teste mal rum damit.
Meld mich wieder, danke schonmal :) :)

capo 16. Okt 2007 17:11

Re: Listbox Datei umbenennen
 
Hallo,
ich habs ehrlich gesagt nicht verstanden.
Wie kann ich so viele Buchstaben abfragen, ist ja nicht nur von a-z ?
Gruss vom Capo

capo 18. Okt 2007 11:37

Re: Listbox Datei umbenennen
 
Hola...
kann mir bitte jemand helfen?

gruss vom capo

_frank_ 18. Okt 2007 14:41

Re: Listbox Datei umbenennen
 
warum nicht mit changefileext(listbox.items[i],'') den basisnamen ermitteln und von hinten anfangen den ascii-wert der buchstaben zu inkrementieren.
die kleinen buchstaben gehen bei 97 los bis 122. ist der ordinal-wert schon bei 122, wird er auf 97 gesetzt und der buchstabe davor manipuliert.

HTH Frank

Progman 18. Okt 2007 14:54

Re: Listbox Datei umbenennen
 
müssen es unbedingt immer Buchstaben sein?
würde
a000001.jpg
a000002.jpg
usw..
nicht auch reichen?
Das wäre viel einfacher zu lösen ;)

capo 18. Okt 2007 15:37

Re: Listbox Datei umbenennen
 
Zitat:

Zitat von _frank_
warum nicht mit changefileext(listbox.items[i],'') den basisnamen ermitteln und von hinten anfangen den ascii-wert der buchstaben zu inkrementieren.
die kleinen buchstaben gehen bei 97 los bis 122. ist der ordinal-wert schon bei 122, wird er auf 97 gesetzt und der buchstabe davor manipuliert.

Hört sich sehr gut an, mal sehen ob ich das umsetzen kann.



Zitat:

Zitat von Progman
müssen es unbedingt immer Buchstaben sein?
würde
a000001.jpg
a000002.jpg
usw..
nicht auch reichen?
Das wäre viel einfacher zu lösen ;)

Kloar..das würde auch gehen, wie die Dateien heißen kann ich ja selbst bestimmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz