Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   String Zerlegen (https://www.delphipraxis.net/134664-string-zerlegen.html)

Asatru 26. Mai 2009 17:26


String Zerlegen
 
Hab da mal ne Frage wieso folgendes nicht funktioniert oder ob nur mein Delphi spinnt...

Delphi-Quellcode:
FindFiles (Label71.Caption, 'project_1.**.exe', True, ListBox3.Items);
project := ListBox3.Items.Strings[0];
pos1 := Pos('project_', project);
pos1 := pos1 + 8;
pos2 := Pos('.exe', project);
Label73.Caption := copy(project, pos1, pos2 - pos1);
der Normale String lautet zum Beispiel

Code:
C:\Program Files (x86)\project\_Germany_\project_1.06.exe
als ausgabe bekomme ich aber

Code:
ram Files (x86)\project\_Germany_\project_1.06
wieso macht er da den Fehler, Hinterlege ich bsp: den Pfad direkt macht er es ohne probleme!

MFG

mkinzler 26. Mai 2009 17:30

Re: String Zerlegen
 
Was hast du vor?

jaenicke 26. Mai 2009 17:34

Re: String Zerlegen
 
Suchst du vielleicht sowas wie ExtractFilePath, ExtractFileExt, ...?

Asatru 26. Mai 2009 17:45

Re: String Zerlegen
 
lasse mir alle Project_1.**.exe in einer Listbox anzeigen, die im ordner project liegen. Dann wollte ich mri den ersten strings eben zerlegen um die version zu bekommen. Dann wird einfach nur die neue Project version in die vorhandene umgeschrieben und dann werden alle alten mit der neuen ersetzt.

Das zerlegen deshalb weil wenn jemand es nutzt der vlt. alle als 1.19a abspeichert muss nun nicht mehr was machen, so wird eben automatisch alles gesucht und in seine version umgeschrieben und ersetzt

Hoffe mein geleiere kannste verstehen xD

DeddyH 26. Mai 2009 17:48

Re: String Zerlegen
 
Das hat aber mit dem Pfad nicht wirklich etwas zu tun, den bekommst Du easy mit den von jaenicke genannten Funktionen.

[edit] Bachstuben wervechselt [/edit]

Satty67 26. Mai 2009 17:49

Re: String Zerlegen
 
Wenn
Delphi-Quellcode:
pos1 := Pos('project_', project);
als Ergebnis 0 ergibt, ist die Ausgabe wie beschrieben.
...und wenn Deine Dateien
Zitat:

Project_1.**.exe
heißen, würde es das erklären

mkinzler 26. Mai 2009 17:50

Re: String Zerlegen
 
Dann würde ich zuerst den Pfad entfernen ExtractFileName() und dann anhand der Punkte zerlegen.

Satty67 26. Mai 2009 17:53

Re: String Zerlegen
 
...und halt schauen, ob das Problem an der Case-Sensitiven Suche des Teilstring liegt.

Helmi 26. Mai 2009 17:53

Re: String Zerlegen
 
Hallo,

ich hab deinen Code mal ausprobiert.

Mein (Test-)Code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  project: String;
  pos1: Integer;
  pos2: Integer;

begin
  project := 'C:\Program Files (x86)\project\_Germany_\project_1.06.exe';
  pos1 := Pos('project_', project);
  pos1 := pos1 + 8;
  pos2 := Pos('.exe', project);
  Label1.Caption := copy(project, pos1, pos2 - pos1);
end;
Und als Text im Label kommt "1.06" raus.

Asatru 26. Mai 2009 17:58

Re: String Zerlegen
 
ExtractFileName funzt wunderbar

@Helmi wenn ich direkt den Pfad als String angeben habe hat es auch gefunzt nur wenn ich den string aus Listbox geholt habe gings nicht mehr! Aber danke für eure einfachere Hilfe, spart auch wieder code xD

Merci an alle


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:41 Uhr.
Seite 1 von 2  1 2      

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