Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   String zerlegen (https://www.delphipraxis.net/155074-string-zerlegen.html)

Luckie 7. Okt 2010 12:29

AW: String zerlegen
 
Es passiert doch nichts, wenn copy fehlertolerant ist.

Satty67 7. Okt 2010 12:40

AW: String zerlegen
 
Stimmt eigentlich schon...

...man übersieht so halt manchmal leicht einen Fehler, weil es richtig aussieht und beim Debuggen woanders gesucht wird.

stahli 7. Okt 2010 12:55

AW: String zerlegen
 
[sehr OT]
Eigentlich sollten auch sämtliche Listen immer von 1 an gezählt werden. Zumindest würde das wohl jeder Programmieranfänger erwarten und als logisch ansehen.
Und man könnte Schleifen von "0 to Count - 1" einfacher als "1 to Count" schreiben. Logischer wäre das allemal.
Also würde ich die Vorwürfe :wink: nicht Copy und Pos machen, sondern vielmehr als Vorreiter der guten Sache bezeichnen :-D.
[/sehr OT]

mkinzler 7. Okt 2010 12:58

AW: String zerlegen
 
[sehr OT]
Da aber intern Basisadresse + Index * Elementbreite zum Berechner der Addresse verwendet wird, wird oft bei einem Index von 0 gestartet.
[/sehr OT]

value is NULL 7. Okt 2010 13:11

AW: String zerlegen
 
Delphi-Quellcode:
      a := Copy(tmp_date, 0, 4);
      b := Copy(tmp_date, 5, 2);
      c := Copy(tmp_date, 7, 2);
so funktionierts perfekt :)

DANKE

Wolfgang Mix 7. Okt 2010 13:14

AW: String zerlegen
 
Wie schon gesagt
Delphi-Quellcode:
a := Copy(tmp_date, 0, 4);
muss eigentlich
Delphi-Quellcode:
a := Copy(tmp_date, 1, 4);
heissen

value is NULL 7. Okt 2010 14:20

AW: String zerlegen
 
das funktioniert prima, ich stehe allerdings schon wieder vor einer
neuen herausforderung... ich habe jetzt nämlich diesen string:

2010\10\07\vctrkdielskdoivüqöökd.wav

um genau zu sein habe ich einige die so aufgebaut sind:

2010\10\07\vctrkdielskdoivüqöökd.wav
2010\10\07\vctrkdkkdow9322qöökd.wav
2010\10\07\vctrkkk3ß2kclsß2kc04.wav

usw usw....
das heisst mit pos usw komme ich hier nicht weiter oder?

gibt es die möglichkeit, das ich delphi sage, schreibe mir alles AB dem 3. Backslash in eine variable?

Danke schon mal

LG

Bernhard Geyer 7. Okt 2010 14:26

AW: String zerlegen
 
Zitat:

Zitat von value is NULL (Beitrag 1054318)
gibt es die möglichkeit, das ich delphi sage, schreibe mir alles AB dem 3. Backslash in eine variable?

Ja, per Regex. In neuen Delphi-Versionen ist dies gleich eingebaut, in alten Versionen kannst du die Reg-Ex-Kompos z.B. von LMD oder diversen anderen Quellen nehmen.

angos 7. Okt 2010 14:27

AW: String zerlegen
 
Hi,

und was würde dir das bringen?
Oder ist dein Ziel jetzt nicht mehr Tag Monat und Jahr zu bekommen?


Mögiche Lösung wäre über AnsireplaceStr

Delphi-Quellcode:
     
tmp_date := Ansireplacestr(tmp_date, '\', '');
 a := Copy(tmp_date, 1, 4);
      b := Copy(tmp_date, 5, 2);
      c := Copy(tmp_date, 7, 2);
Gruß

xZise 7. Okt 2010 14:28

AW: String zerlegen
 
Dafür gibt es Delphi-Referenz durchsuchenPosEx oder du zählst manuell mit einer Schleife:

Delphi-Quellcode:
var
  i : Integer;
begin
  i := 1;
  while (i <= Length(S)) and (S[i] <> '\') do
    Inc(i);
Da steht dann nachher in i die Position wo das "\" steht. Und dann mit Delphi-Referenz durchsuchenCopy einlesen:
Delphi-Quellcode:
NewS := Copy(S, i + 1, Length(S) - i);
Beides ungetestet.

Übrigens RegEx wären hier etwas overkill oder?

MfG
Fabian


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr.
Seite 3 von 5     123 45      

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