Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi string an bestimmtem Zeichen teilen (https://www.delphipraxis.net/100749-string-bestimmtem-zeichen-teilen.html)

cRayZo 3. Okt 2007 12:50


string an bestimmtem Zeichen teilen
 
Ich hatte so ein ähnliches Problem ja schonmal, aber da waren es Zahlen die durch Zeichen getrennt waren.

Jetzt weiß ich nicht wie ich einen string ohne ehlendslange ifthenelse kette bis zu einem bestimmten Zeichen auszulesen.

zum Beispiel:

'hallo,wie gehts? |123:34.blabla'
zu-->
text1:='hallo, wie gehts? '
text2:='123:34.blabla'

Trennzeichen wär hier '|'

thx schonmal für die Antwort :)

RavenIV 3. Okt 2007 12:55

Re: string an bestimmtem Zeichen teilen
 
Schau Dir mal die funktion pos und posex an.
Und das PosEx nicht mit PoSex verwechseln... ;-)

cRayZo 3. Okt 2007 13:09

Re: string an bestimmtem Zeichen teilen
 
lol^^ nene mach ich ned

okay funzt, nur nochn kleiner Haken.
Wenn ich weiß, dass das sagen wir mal das 6te zeichen im string ist.
wie kann ich dann die ersten 6 Zeichen in string 1 und den rest in string 2 speichern?

xaromz 3. Okt 2007 13:14

Re: string an bestimmtem Zeichen teilen
 
Hallo,

dafür gibt's die Funktion Copy().
In Deinem Fall sähe das so aus:
Delphi-Quellcode:
var
  S: String;
  I: Integer;
  First, Second: String;
begin
  S := 'hallo,wie gehts? |123:34.blabla';
  I := Pos('|', S);
  First := Copy(S, 1, I - 1); // First = "hallo,wie gehts? "
  Second := Copy(S, I + 1, MaxInt); // Second = "123:34.blabla"
end;
Natürlich musst Du noch prüfen, ob I > Null ist.

Gruß
xaromz

RavenIV 3. Okt 2007 13:21

Re: string an bestimmtem Zeichen teilen
 
Zitat:

Zitat von cRayZo
lol^^ nene mach ich ned

okay funzt, nur nochn kleiner Haken.
Wenn ich weiß, dass das sagen wir mal das 6te zeichen im string ist.
wie kann ich dann die ersten 6 Zeichen in string 1 und den rest in string 2 speichern?

mit der Funktion StrPos bekommst Du die Position des Suchstrings im String.
Mit StrLCopy kannst Du dann eine bestimme Anzahl Zeichen von String A nach String B kopieren.

Schau Dir einfach mal alle Stringfunktionen in der Delphi-Hilfe an.
Natürlich kannst Du auch LeftStr, RightStr, Copy verwenden.
Die sind in der Unit SysUtils.

ulhau 3. Okt 2007 13:24

Re: string an bestimmtem Zeichen teilen
 
Hi,

Nur so als Beispiel:

function ExtractLeftString(DatenStr, MiddelChar: String): String;
var
ErstPos, LetztPos, Count: Integer;
begin
ErstPos := 1;
LetztPos := Pos(MiddelChar, DatenStr);
Count := LetztPos - 1;
ExtractLeftString := Copy(DatenStr, 1, Count);
end;

function ExtractRightString(DatenStr, MiddelChar: String): String;
var
ErstPos, LetztPos, Count: Integer;
begin
ErstPos := Pos(MiddelChar, DatenStr) + 1;
LetztPos := Length(DatenStr);
Count := LetztPos - ErstPos;
ExtractRightString := Copy(DatenStr, ErstPos, Count + 1);
end;

Str1 := ExtractLeftString(DStr, '|');
Str2 := ExtractRightString(DStr, '|');

Ja probier halt mal.

Tschüsss !

RavenIV 3. Okt 2007 13:26

Re: string an bestimmtem Zeichen teilen
 
Zitat:

Zitat von ulhau
Hi,

Nur so als Beispiel:
....
....

Ja probier halt mal.

Tschüsss !

Könntest DU die Delphi-Tags benutzen?
Dann wird das besser lesbar...

cRayZo 3. Okt 2007 13:33

Re: string an bestimmtem Zeichen teilen
 
also ich hab jetzt das von RavenIV ausprobiert, funktioniert, nochmal danke an alle!! :P

RavenIV 3. Okt 2007 13:40

Re: string an bestimmtem Zeichen teilen
 
Zitat:

Zitat von cRayZo
also ich hab jetzt das von RavenIV ausprobiert, funktioniert, nochmal danke an alle!! :P

Na endlich mal einer, der (mit einem Schubser in die richtige Richtung) eine Eigeninitiative zeigt. :-)

Und Du könntest dann Deinen geistigen Erguss auch noch hier veröffentlichen.
Also nur den Teil mit dem String-Kopieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 Uhr.

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