AGB  ·  Datenschutz  ·  Impressum  







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

String anhand eines Zeichens trennen

Ein Thema von ThE_-_BliZZarD · begonnen am 16. Sep 2006 · letzter Beitrag vom 16. Sep 2006
Antwort Antwort
ThE_-_BliZZarD

Registriert seit: 15. Sep 2006
Ort: Wiesbaden/Hessen
89 Beiträge
 
Delphi 2010 Professional
 
#1

String anhand eines Zeichens trennen

  Alt 16. Sep 2006, 14:49
Ich hab schon überall gesucht, aber irgendwie nichts gefunden was ich brauchen kann..

Ich möchte einen String anhand eines Zeichens trennen, also z.B. das aus dem String "Hallo|Tschüß"
zwei Variablen entstehen, in der ersten steht dann "Hallo", und in der zweiten "Tschüß".
Als Trennzeichen hat dabei das "|" gedient. In PHP würde das so in etwa gehen:
Code:
list($teil1, $teil2) = explode("|", "Hallo|Tschüß");
Leider ist mir Delphi nicht so geläufig wie PHP, so wäre ich sehr dankbar wenn jemand das Codebeispiel mal in Delphi machen könnte..

DANKE
MSVC2008 (C/C++ with QT), Delphi RAD 2010, Flash CS5 (FDT/Adobe), Java EE (Eclipse), PHP5
Antwortsprachen: Deutsch, Englisch, Französisch, Japanisch
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: String anhand eines Zeichens trennen

  Alt 16. Sep 2006, 14:50
explodeexplode
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: String anhand eines Zeichens trennen

  Alt 16. Sep 2006, 14:52
Delphi-Quellcode:
  str1:=Copy(deinstr, 1, pos('|', deinstr)-1);
  str2:=Copy(deinstr, pos('|', deinstr)+1, length(deinstr));
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: String anhand eines Zeichens trennen

  Alt 16. Sep 2006, 14:59
Wenn man mehr als 2 Teile hat, wird das nicht funktionieren. Dann müsste man mit ner Schleife und PosEx arbeiten.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
ThE_-_BliZZarD

Registriert seit: 15. Sep 2006
Ort: Wiesbaden/Hessen
89 Beiträge
 
Delphi 2010 Professional
 
#5

Re: String anhand eines Zeichens trennen

  Alt 16. Sep 2006, 15:04
danke für die schnelle antwort, ich habe jetzt durch den Link zu explode noch was gefunden, nähmlich das hier:

Delphi-Quellcode:
// Explode trennt S in die durch Separator getrennten Elemente auf. Wenn Limit
// > 0 ist, so werden max. Limit Elemente getrennt, wobei im letzen Element
// die Restzeichenkette steht.

function Explode(const Separator, S: string; Limit: Integer = 0): TStringDynArray;
var
  SepLen: Integer;
  F, P: PChar;
  ALen, Index: Integer;
begin
  SetLength(Result, 0);
  if (S = '') or (Limit < 0) then Exit;
  if Separator = 'then
  begin
    SetLength(Result, 1);
    Result[0] := S;
    Exit;
  end;
  SepLen := Length(Separator);
  ALen := Limit;
  SetLength(Result, ALen);

  Index := 0;
  P := PChar(S);
  while P^ <> #0 do
  begin
    F := P;
    P := AnsiStrPos(P, PChar(Separator));
    if (P = nil) or ((Limit > 0) and (Index = Limit - 1)) then P := StrEnd(F);
    if Index >= ALen then
    begin
      Inc(ALen, 5);
      SetLength(Result, ALen);
    end;
    SetString(Result[Index], F, P - F);
    Inc(Index);
    if P^ <> #0 then Inc(P, SepLen);
  end;
  if Index < ALen then SetLength(Result, Index);
end;
Allerdings habe ich damit noch ein Problem, nämlich das ich eine Fehlermeldung bekomme, das der Typ TStringDynArray undefiniert sei. Als Hilfe stand noch unter dem Post das man
das hier definieren sollte:

type TSTringdynarray = array of String; Allerdings weiß ich nicht so genau wo das hin muss, bin leider noch recht neu in der Sprache,
nochmal DANKE für die Hilfe!
MSVC2008 (C/C++ with QT), Delphi RAD 2010, Flash CS5 (FDT/Adobe), Java EE (Eclipse), PHP5
Antwortsprachen: Deutsch, Englisch, Französisch, Japanisch
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: String anhand eines Zeichens trennen

  Alt 16. Sep 2006, 15:08
Na oben im interface-Abschnitt. Gleich nach dem uses-Zeugs.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: String anhand eines Zeichens trennen

  Alt 16. Sep 2006, 15:41
Zitat von 3_of_8:
Wenn man mehr als 2 Teile hat, wird das nicht funktionieren. Dann müsste man mit ner Schleife und PosEx arbeiten.
Ist schon klar, da er aber nur einen Seperator hat, ist das in seinem fall die schnellere Variante
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: String anhand eines Zeichens trennen

  Alt 16. Sep 2006, 15:49
Die Frage hatten wir schon oft und ich kenne 3 Beitrage die sei mit gutem Code lösen (Ein Beitrag von mir ):

http://www.delphipraxis.net/internal...939&highlight=
http://www.delphipraxis.net/internal...ct.php?t=72330
http://www.delphipraxis.net/internal...816&highlight=

Gruß Alexander
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  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 23:59 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