Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion gesucht: Splitten eines Strings nach Trennzeichen (https://www.delphipraxis.net/45294-funktion-gesucht-splitten-eines-strings-nach-trennzeichen.html)

Moin 3. Mai 2005 17:25


Funktion gesucht: Splitten eines Strings nach Trennzeichen
 
Moin Leute,

Ich suche eine Standard-Delphi-Funktion, welche einen String nach Trennzeichen wie '#' oder ';' aufteilt, entweder auf ein Array, oder nach einem Index!

z. B.:
Code:
String:= '10#Mustermann#Max#Musterstr.#...#'
Die Funktion könnte dann so aussehen:
Code:
wert:= function(string,'#',i)
mit i:= Stelle des Wertes (1 bspw. für 'Mustermann')

Gibt es solch eine Funktion, oder eine ähnliche in Delphi??

ACHTUNG: ich will keine selbstgeschriebene, denn ich benötige sie um im ABI zeit zu sparen ...

Sharky 3. Mai 2005 17:32

Re: Funktion gesucht: Splitten eines Strings nach Trennzeich
 
Hai,

das könntest Du mit einer TStringListe lösen. Schaue Dir mal die Eigenschaften:
Delphi-Referenz durchsuchen.Delimiter und Delphi-Referenz durchsuchen.DelimitedText an.


[Edit]Du musst nicht extra gross schreiben. Wir sind doch nicht blind[/edit]

Cyberbob_at_tot 6. Mai 2005 07:56

Re: Funktion gesucht: Splitten eines Strings nach Trennzeich
 
Schau mal unter

Explode


sorry gerade erst gelesen das du kein selbstgeschriebenes benötigst, da wird das nicht gerade das sein was du suchst!, ich zumindest habe damit gute erfahrungen gemacht!

alcaeus 6. Mai 2005 07:58

Re: Funktion gesucht: Splitten eines Strings nach Trennzeich
 
Moin Moin (:stupid:), Moin Sharky,

evtl. sollte auch erwaehnt werden, dass es die beiden Funktionen erst ab Delphi 6 gibt (AFAIR). Je nachdem ob irgendwelche Einschraenkungen da sind, kannst du die StringList verwenden oder musst dir selber was zusammenschreiben ;)

Greetz
alcaeus

SirThornberry 6. Mai 2005 08:01

Re: Funktion gesucht: Splitten eines Strings nach Trennzeich
 
ist zwar keine Delphistandardfunktion (musst du noch abtippen bzw. copy & paste) aber die funktion sollte genau das machen was du willst ohne erst eine stringlist anlegen zu müssen

(herunter scollen bis "Function zum Heraussplitten eines einzelnen Indexes:")
http://www.delphipraxis.net/internal...=205244#205244

In Bezug auf "Zeit sparen im Abi". Wenn du die selbst geschriebenen Funktionen verstehst sind diese auch unter einer minute getippt

PMM 6. Mai 2005 12:23

Re: Funktion gesucht: Splitten eines Strings nach Trennzeich
 
Schau mal in sourceforge.net nach den SysTools von TurboPower (nunmehr OpenSource). Darin gibt es einen ganzen Sack voll String-Rotinen. Dazu gehört u.a. "ExtractWord", das aus einem gegebenen String das n-te Word holt, wobei der/die Wortbegrenzer frei gewählt werden können :)
PMM

Moin 20. Mai 2005 14:24

Re: Funktion gesucht: Splitten eines Strings nach Trennzeich
 
Hallo nochman,

Zitat:

Zitat von alcaeus
evtl. sollte auch erwaehnt werden, dass es die beiden Funktionen erst ab Delphi 6 gibt (AFAIR). Je nachdem ob irgendwelche Einschraenkungen da sind...

Leider ist dass der Fall, da wir in der Schule nur Delphi5 in der abgespeckten Version vorhanden haben.

Außderdem verstehe ich das mit der TStringlist nicht, ich habe mich dazu zwar in der D-Hilfe informiert, aber irgend wie klappt das nicht...

Außderdem ist es nicht das Problem für mich, so eine Funktion zu schreiben, es erfordert ebend nur sehr viel Denkschmalz :gruebel: da man viele VAriablen ( besonders Zählvariablen) braucht.

Trotzdem danke für eure Anstrengungen, wenn jmd. noch etwas einfällt, dann immer her mit den Vorschlägen :cyclops:

Gruß, euer Moin :P

Luckie 20. Mai 2005 14:26

Re: Funktion gesucht: Splitten eines Strings nach Trennzeich
 
Dann nimm doch, wie schon vorgeschlagen, Explode oder was stimmt damit nicht?

franktron 20. Mai 2005 14:43

Re: Funktion gesucht: Splitten eines Strings nach Trennzeich
 
Das geht aber auch so

Delphi-Quellcode:
Var
  Liste : TStringList;

Begin
  Liste:=TStringList.Create;
  Liste.Text:='mmm#llll#llko';
  Liste.Text:=ReplaceString(Liste.Text,'#',#13#10);
  Liste.Free;
End;
Bei replaceString muste eben mal gucken ob ich die Param an die Richtige Stelle gesetzt hab.

[edit=Sharky]Delphi-Tags vervollständigt. Mfg, Sharky[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 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