Entwickler-Ecke
Sonstiges (Delphi) - Text aus Listbox extrahieren
TOMahawk85 - Mi 17.05.06 22:28
Titel: Text aus Listbox extrahieren
Hallo Forumfreunde,
ich hoffe mir kann jemand dabei helfen, wie ich aus einer Listbox einen Ordner- oder Dateinamen extrahieren kann.
In der Listbox steht zum Beispiel folgendes:
c:\ordner1\ordner2\file1.txt
c:\ordner1\ordner3\file2.txt
Die Frage ist, wie ich "ordner2" und danach "ordner3" als verwertbare Zeichenkette/String aus der Zeichenkette "c:\ordner1\ordner2\file1.txt" bzw. "c:\ordner1\ordner3\file2.txt" extrahieren und in der Form x:='ordner2'; verwenden kann.
Gleiches gilt für die Dateinamen "file1.txt" und "file2.txt" - aber ohne die Endung.
Ich gehe mal davon aus, dass für beide Fälle die gleiche Vorgehensweise zum Einsatz kommt.
Ebenso, dass es in ähnlicher Weise auch bei Edit-Elementen funktioniert.
Ich bedanke mich im Vorraus für die Hilfe,
TOMahawk85
Harry M. - Mi 17.05.06 22:33
Pos, Copy sollten Deine Feunde sein.
TOMahawk85 - Mi 17.05.06 22:47
Ich hab gerade in der Hilfe nachgeschaut und es scheinen ganz nette Funktionen zu sein.
Aber was mache ich, wenn ich keine konkrete Zeichenkette angeben kann, aber trotzdem den 2. Ordner (egal wie er heißt), also den Bereich zwischen "\" und "\" ermitteln will. Dazu müsste ich ja den 1. Ordner (wieder egal wie er heißt) überspringen.
Harry M. - Mi 17.05.06 23:29
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| const Path = 'c:\ordner1\ordner2\File.txt'; var I: Integer; S: String; begin S := ExtractFilePath(Path); Delete(S, 1, 3); I := Pos('\', S); S := Copy(S, I, Length(S)); Showmessage(S); end; |
TOMahawk85 - Do 18.05.06 00:53
Nun steht nur noch die Frage, wie ich eine Zeile bzw. ein Element (Pfad+Datei) einer listbox auswählen und diese Zeichenkette bearbeiten kann.
TOMahawk85 - Do 18.05.06 13:49
Kann mir jemand auf die schnelle helfen, denn ohne eine Lösung für das Problem (der Eintrag über diesem hier) kann ich auch nicht mehr anderweitig weiterprogrammieren.
ZeitGeist87 - Do 18.05.06 13:52
also mit listbox.items.strings[hier die position von deinem element]
herausselektieren
und so in einzelteile zerlegen
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| uses FileCtrl;
var pfad: string; laufwerk: char; verzeichnisse, datei: string; begin pfad:='c:\temp\test\test2.txt'; ProcessPath(pfad, laufwerk, verzeichnisse, datei); |
Lannes - Do 18.05.06 15:20
Hallo,
@
ZeitGeist87
ProcessPath(... kannte ich noch nicht :) , merken!
Leider muss die Datei auf dem Rechner existieren.
@
TOMahawk85
den letzten Ordner und den Dateinamen ohne Endung kannst Du auch mit in Delphi vorhandenen Funktionen ermitteln.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var Pfad, sTemp, LastDirPart, FileNameNoExt : String; Pfad := 'C:\temp\Ordner1\Ordner2\eineDatei.txt';
sTemp := ChangeFileExt(Pfad,''); FileNameNoExt := ExtractFileName(sTemp); sTemp := ExtractFileDir(sTemp); LastDirPart := ExtractFileName(sTemp); |
ZeitGeist87 - Do 18.05.06 15:24
ging davon aus, dass die Dateien in der Listbox existieren =))))
aber gute Lösung @Lannes
TOMahawk85 - Do 18.05.06 21:49
Das ist jetzt genau das, was ich gebraucht habe.
Wenn nicht gerade jemand die Befehle kennt, sucht man sich noch einen Wolf in dem Berg an Befehlen.
Ich danke euch für eure Mühe.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!