![]() |
Inhalt eines Strings herausschneiden
So habe da noch ein Problem.
Also ich habe einen Variable als String definiert der Inhalt ist z.B. test#test2#test3 So jetzt möchte ich das ich z.B. in einem Array einzeln test, test2, test3 gespeichert wird also immer den ihnalt zwischen den Rauten. In PHP geht das ja ganz einfach mit split aber wie ich das mit delphi machen soll habe ich nihct gefunden und wenn dann war mir der Quelltext zu schwer und für mihc nicht nachvollziehbar und da habe ich dann nichts von. Danke dws |
Re: Inhalt eines Strings herausschneiden
Delphi-Quellcode:
function Tokenize(s: string; index: integer; sep: char): string;
var sl: TStringList; begin sl := TStringList.Create; Try Repeat if Pos(sep, s) <> 0 then begin sl.Add(Copy(s, 1, Pos(sep, s)-1)); Delete(s, 1, Pos(sep, s)); end else begin sl.Add(s); s := ''; end; until s = ''; if index <= sl.Count then Result := sl.Strings[index-1] else Result := ''; finally sl.Free; end; end; |
Re: Inhalt eines Strings herausschneiden
hab vor paar tagen erst die funktion SplitString gepostet. In dem Thread finden sich auch noch andere Möglichkeiten. Allerdings wird dort nich in ein array gesplittet sondern in eine Stringlist. Aber von ner Stringlist in ein Array zu packen sollte nicht das problem sein...
|
Re: Inhalt eines Strings herausschneiden
aber geht das nicht einfacher
|
Re: Inhalt eines Strings herausschneiden
In php kümmerst du dich doch auch nicht darum was die funktion split machst, warum stört es dich in delphi das es nicht mit 2 Zeilen getan ist? (wenn du mit ner Stringlist arbeitest bringens paar zeilen weniger auch, allerdings macht die Stringliste dann intern auch bissl mehr)
|
Re: Inhalt eines Strings herausschneiden
Delphi-Quellcode:
function Tokenize(s: string; index: integer; sep: char): string;
var sl: TStringList; begin sl := TStringList.Create; Try Repeat if Pos(sep, s) <> 0 then begin sl.Add(Copy(s, 1, Pos(sep, s)-1)); Delete(s, 1, Pos(sep, s)); end else begin sl.Add(s); s := ''; end; until s = ''; if index <= sl.Count then Result := sl.Strings[index-1] else Result := ''; finally sl.Free; end; end; aufrufen kannst du das ja mit
Delphi-Quellcode:
while not (Tokenize(DeinString, Zaehlervariable, '#') = '') do
begin ShowMessage(Tokenize(DeinString, Zaehlervariable, '#')); inc(Zaehlervariable); end; |
Re: Inhalt eines Strings herausschneiden
achso jetzt habe ich das auch erst verstanden entschuldigung danke
|
Re: Inhalt eines Strings herausschneiden
entschuldigung?
|
Re: Inhalt eines Strings herausschneiden
So der sagt mir jetzt aber bei der function delkleration ein fehler
Code:
keine ahnung woran das liegen könnte
[Fehler] MainUnit.pas(335): Ungenügende Forward- oder External-Deklaration: 'TMainForm.Tokenize'
|
Re: Inhalt eines Strings herausschneiden
Hi,
anstelle vonTMainForm musst du den Namen deiner Form einsetzen. Ratte |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:13 Uhr. |
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