| Autor |
Beitrag |
TOMahawk85
Hält's aus hier
Beiträge: 15
WinXP
Delphi 2005
|
Verfasst: Mi 17.05.06 22:28
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.
      
Beiträge: 754
Win 2000, XP
D2005
|
Verfasst: Mi 17.05.06 22:33
Pos, Copy sollten Deine Feunde sein.
_________________ Gruß Harry
Et spes me per dies sine te ducat et amor me ferat, si dolor spem tollit.
|
|
TOMahawk85 
Hält's aus hier
Beiträge: 15
WinXP
Delphi 2005
|
Verfasst: 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.
      
Beiträge: 754
Win 2000, XP
D2005
|
Verfasst: 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; |
_________________ Gruß Harry
Et spes me per dies sine te ducat et amor me ferat, si dolor spem tollit.
|
|
TOMahawk85 
Hält's aus hier
Beiträge: 15
WinXP
Delphi 2005
|
Verfasst: 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 
Hält's aus hier
Beiträge: 15
WinXP
Delphi 2005
|
Verfasst: 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
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: 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); |
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: 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); |
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Do 18.05.06 15:24
ging davon aus, dass die Dateien in der Listbox existieren =))))
aber gute Lösung @Lannes
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
TOMahawk85 
Hält's aus hier
Beiträge: 15
WinXP
Delphi 2005
|
Verfasst: 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.
|
|