AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

string an bestimmtem Zeichen teilen

Ein Thema von cRayZo · begonnen am 3. Okt 2007 · letzter Beitrag vom 3. Okt 2007
Antwort Antwort
cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#1

string an bestimmtem Zeichen teilen

  Alt 3. Okt 2007, 12:50
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
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: string an bestimmtem Zeichen teilen

  Alt 3. Okt 2007, 12:55
Schau Dir mal die funktion pos und posex an.
Und das PosEx nicht mit PoSex verwechseln...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#3

Re: string an bestimmtem Zeichen teilen

  Alt 3. Okt 2007, 13:09
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 Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: string an bestimmtem Zeichen teilen

  Alt 3. Okt 2007, 13:14
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
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: string an bestimmtem Zeichen teilen

  Alt 3. Okt 2007, 13:21
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.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
ulhau

Registriert seit: 23. Okt 2006
20 Beiträge
 
#6

Re: string an bestimmtem Zeichen teilen

  Alt 3. Okt 2007, 13:24
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 !
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: string an bestimmtem Zeichen teilen

  Alt 3. Okt 2007, 13:26
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...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#8

Re: string an bestimmtem Zeichen teilen

  Alt 3. Okt 2007, 13:33
also ich hab jetzt das von RavenIV ausprobiert, funktioniert, nochmal danke an alle!!
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: string an bestimmtem Zeichen teilen

  Alt 3. Okt 2007, 13:40
Zitat von cRayZo:
also ich hab jetzt das von RavenIV ausprobiert, funktioniert, nochmal danke an alle!!
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.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 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