Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Inhalt eines Strings herausschneiden (https://www.delphipraxis.net/22699-inhalt-eines-strings-herausschneiden.html)

dws 21. Mai 2004 19:06


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

Pseudemys Nelsoni 21. Mai 2004 19:10

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;

SirThornberry 21. Mai 2004 19:10

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...

dws 21. Mai 2004 19:11

Re: Inhalt eines Strings herausschneiden
 
aber geht das nicht einfacher

SirThornberry 21. Mai 2004 19:14

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)

Pseudemys Nelsoni 21. Mai 2004 19:14

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;

dws 21. Mai 2004 21:08

Re: Inhalt eines Strings herausschneiden
 
achso jetzt habe ich das auch erst verstanden entschuldigung danke

Pseudemys Nelsoni 21. Mai 2004 21:17

Re: Inhalt eines Strings herausschneiden
 
entschuldigung?

dws 23. Mai 2004 18:32

Re: Inhalt eines Strings herausschneiden
 
So der sagt mir jetzt aber bei der function delkleration ein fehler

Code:
[Fehler] MainUnit.pas(335): Ungenügende Forward- oder External-Deklaration: 'TMainForm.Tokenize'
keine ahnung woran das liegen könnte

Ratte 23. Mai 2004 18:40

Re: Inhalt eines Strings herausschneiden
 
Hi,

anstelle vonTMainForm musst du den Namen deiner Form einsetzen.

Ratte


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 Uhr.
Seite 1 von 3  1 23      

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