Autor Beitrag
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Sa 27.08.05 20:01 
Hallo Leute
Wie könnt Ich das am einfachsten anstellen ?
Ich wollte mit unten stehenden Code einen Ordner mit Bildern umbenennen nur leider krieg ich das mit der Listbox nicht hin.
Die Bilder sollen in der gleichen Reihenfolge wie sie im Ordner sind erhalten bleiben da die Bilder aber zb. Bild0, Bild174, Bild934, Bild1054 heißen bringt mir die Listbox die Bilder Durcheinander also

Bild0 = Bild1
Bild1054 = Bild2
Bild174 = Bild3
Bild934 = Bild4

Vieleicht weiß einer von euch Rat.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
 var
x,i:Integer;
 begin
  x:=ListBox1.Items.Count;
    for i := 0 to x-1 do
 begin
  Y:=Y+1;
  RenameFile(Pfad+'\'+ListBox1.Items[i],Pfad+'\'+'Neu_'+IntTostr(Y)+'.jpg');
 end;
end;
starsurfer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 334

Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
BeitragVerfasst: Sa 27.08.05 20:19 
hast du bei der listbox sorted=false gemacht?
weild ann bleiben die so wie du sie vorher einträgst...

_________________
GEIZ IST GEIL! - Ihr Sozialamt
Blackheart666 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Sa 27.08.05 20:21 
Das ist klar hab ich auf False. Daran liegt's nicht.
worm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 135


D6 Prof
BeitragVerfasst: Sa 27.08.05 20:28 
Da wirst Du wohl um eine selbstgeschriebene Sortierung nicht drumrumkommen... dazu gäbe es mehrere Möglichkeiten.
  • Entweder sortierst Du die Liste am Ende einmalig selbst z.B. mittels Quicksort und eigener Vergleichsfunktion,
  • oder Du leitest eine Klasse von TStrings ab, in der Du CompareStrings überschreibst (dann müsstest Du die Einträge erstmal zu dieser StringList hinzufügen und am Ende alle rüberkopieren),
  • oder Du benutzt stattdessen ein ListView und implementierst OnCompare (IMHO beste Möglichkeit).
Deine eigene Vergleichsfunktion müsste entweder aus dem String die Zahlen extrahieren, in einen Integer umwandeln und dann vergleichen, oder Du suchst die passende von Windows bereitgestellte Vergleichsfunktion (es gibt eine, die den Vergleich korrekt durchführen kann).

_________________
In the beginning, the universe was created. This has made a lot of people very angry, and is generally considered to have been a bad move.
Blackheart666 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Sa 27.08.05 20:36 
Das höhrt sich kompliziert an ich schau mich mal nach Listview um.