Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Split-Funktion in Delpi??? (https://www.delphipraxis.net/5332-split-funktion-delpi.html)

sakura 25. Sep 2003 07:52

Re: Split-Funktion in Delpi???
 
:oops: da habe ich zwei Zeilen Code unterschlagen :mrgreen:

Code:
function Split(InStr, SplitAt: String): TStringArray;
var
  I, L: Integer;
begin
  SetLength(Result, 0);
  if InStr = '' then
    Exit;
  I := Pos(SplitAt, InStr);
  L := Length(SplitAt);
  while I > 0 do
  begin
    SetLength(Result, Succ(Length(Result)));
    Result[High(Result)] := Copy(InStr, 1, Pred(I));
    Delete(InStr, 1, Pred(I + L));
    I := Pos(SplitAt, InStr);
  end;
[color=#ff0009] SetLength(Result, Succ(Length(Result)));
  Result[High(Result)] := InStr; [/color]
end;
...:cat:...

FreewareFire 25. Sep 2003 08:11

Re: Split-Funktion in Delpi???
 
Vielen Dank!!!

Es klappt hervorragend!

Wormid 26. Sep 2003 17:17

Re: Split-Funktion in Delpi???
 
Warum benutzt eigentlich niemand die Delphi-eigene Routine "ExtractStrings" zum splitten von Strings?

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var s: String;
    Items: TStringList;
begin
  Items := TStringList.Create;
  s := 'text1$$text2$$text3';
  ExtractStrings(['$'], [], PChar(s), Items);
  Memo1.Text := Items.Text;
  Items.Free
end;
Gruß

Wormid

[edit=Christian Seehase]Delphi-Tag geschlossen Mfg, Christian Seehase[/edit]

Christian Seehase 26. Sep 2003 17:26

Re: Split-Funktion in Delpi???
 
Moin Wormid,

Zitat:

Zitat von Wormid
Warum benutzt eigentlich niemand die Delphi-eigene Routine "ExtractStrings" zum splitten von Strings?

Vielleicht weil sie nicht dokumentiert ist...
Ist zumindest in D5 nicht in der Hilfe zu finden, wenn auch in der Unit classes enthalten.
Danke für den Tip.

Delphi-Freak 13. Jul 2005 10:32

Re: Split-Funktion in Delpi???
 
Also mein Delphi2005 (Personal) kennt die Funktion, auch die Hilfe.
Ist es erlaubt, die Hilfe hier zu zitieren, oder gibt es da rechtliche Probleme? Wenn ja, dann kann ichs ja hierherschreiben.

LG, Gerhard

Aenogym 13. Jul 2005 11:01

Re: Split-Funktion in Delpi???
 
Zitat:

Zitat von Delphi-Freak
Also mein Delphi2005 (Personal) kennt die Funktion, auch die Hilfe.
Ist es erlaubt, die Hilfe hier zu zitieren, oder gibt es da rechtliche Probleme? Wenn ja, dann kann ichs ja hierherschreiben.

LG, Gerhard

die hilfe zu zitieren ist erlaubt (solange du nicht das _gesamte_ helpbook abtippst :zwinker: )

und zu dieser undokumentierten extractStrings-funktion kann ich nur sagen: ich nutze lieber die explode() aus der CodeLibrary, denn die gibt mir einen simplenn array zurück und keine StringList, die ich erstmal Createn muss...

aenogym

Delphi-Freak 13. Jul 2005 11:13

Re: Split-Funktion in Delpi???
 
Naja, Geschmackssache...
Und wenn würde ich das ACV-Prinzip (Strg+A, Strg+C, Strg+V) verwenden und nicht alles abtippen :wink:
Aber trotzdem, für die Interessierten, die noch nicht d2k5 besitzen (viele werden es ja nicht sein):
Code:
[size=18][color=#000080][b]ExtractStrings Routine[/b][/color][/size]
Füllt eine Liste mit Teil-Strings, die aus einem String extrahiert werden.

[b]Unit[/b]
Classes

[b]Syntax[/b]
[color=#000080][Delphi] function ExtractStrings(Separators: TSysCharSet, WhiteSpace: TSysCharSet, Content: PAnsiChar, Strings: TStrings): Integer;[/color]

[b]Beschreibung[/b]
Mit ExtractStrings können Sie eine String-Liste mit den Teil-Strings des in Content übergebenen nullterminierten Strings füllen.

Separators enthält die Trennzeichen, mit denen die Teil-Strings voneinander getrennt sind. Wagenrücklaufzeichen, Newline-Zeichen und Anführungszeichen (einfach oder doppelt) werden immer als Trennzeichen behandelt. Trennzeichen werden innerhalb eines Strings mit Anführungszeichen bis zum letzten schließenden Anführungszeichen ignoriert. (Beachten Sie, dass Zeichen in Anführungszeichen in einem String mit Anführungszeichen vorkommen können, wenn Anführungszeichen doppelt verwendet werden.)

WhiteSpace enthält Zeichen, die bei der Analyse von Content ignoriert werden sollen, wenn sie am Anfang eines Strings vorkommen.

Content ist der nullterminierte String, der in Teil-Strings zerlegt werden soll.

Strings ist die String-Liste, der alle aus Content extrahierten Teil-Strings hinzugefügt werden. Diese Liste wird von ExtractStrings nicht gelöscht, d.h. alle in ihr enthaltenen Strings bleiben beim Aufruf von ExtractStrings erhalten.

ExtractStrings gibt die Anzahl der Strings zurück, die dem Strings-Parameter hinzugefügt wurden.

[color=#000080]Hinweis:[/color] ExtractStrings fügt der Liste keine leeren Strings hinzu.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz