Mal eine andere Frage zurück:
Ich habe leider nicht Delphi XE. Daher geht das bei mir nicht mit dem Testen. Aber eines verstehe ich nicht so Recht. Wie kann man in einer Prozedur den Parameter auf const setzen, also nicht veränderbar und dann innerhalb der Prozedur die Variable ändern? Bei mir gibt der Compiler schon die Fehlermeldung aus, dass man der linken Seite nichts zuweisen darf. Weil sie eiben als const deklariert ist. Allerdings habe ich das mit dem const für TStringlist ausprobiert und es klappt. Ganz verstehen kann ich das zwar nicht, wie das bei einfachen Variablen verboten udn bei Komponenten erlaubt ist, aber es ist nun mal so.
Am Einfachsten durch eine Schleife. So in etwa:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure Split(Delimiter: char; const s: string; Strings: TStringList); var i: integer; Teil: string; begin Strings.Clear; Teil := ''; for i := 1 to Length(s) do begin if s[i] = Delimiter then begin Strings.Add(Teil); Teil := Delimiter; end else begin Teil := Teil + s[i]; end; end; Strings.Add(Teil); end; |
Leider muss ich über TStringlist gehen, da TStrings bei Delphi 5 nur abstrakt ist.
In der Variable Strings ist dann das, was Du willst. Du kannst es z.B. einer ListBox.Items zuweisen:
Delphi-Quelltext
1: 2: 3:
| SL := TStringList.Create; Split('/',Edit1.Text,SL); Listbox1.Items := SL; |
Toleranz ist eine Grundvoraussetzung für das Leben.