Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - String trennen


Pitri_1 - Di 01.11.11 13:44
Titel: String trennen
Hallo,

Also ich habe einen String mit mehreren Elementen, die alle durch '.' getrennt sind (z.B. Fussball.Handball.Tennis) vorliegen.
Wie kann ich jedes einzelne Element in ein Array schreiben mit pos() und copy()?
Danke!


Dude566 - Di 01.11.11 13:50

Du hast dir die Frage doch schon selbst beantwortet oder hast du konkrete Probleme bei der Verwendung dieser Stringoperationen? :nixweiss:


Pitri_1 - Di 01.11.11 22:38

user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Du hast dir die Frage doch schon selbst beantwortet oder hast du konkrete Probleme bei der Verwendung dieser Stringoperationen? :nixweiss:


Ich weiß nicht so richtig wie ich die beiden verknüpfen muss und wie dann die Schleife dann aussehen muss -> for i := 1 to ?
Danke


bummi - Di 01.11.11 22:56

Ok, mit copy und Pos in eine Array ...

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
type
SA=Array of String;

Procedure Zerlege(s:String;var a:SA);
  Procedure Add2Array(const ss:String);
    begin
      SetLength(a,High(a) + 2);
      a[High(a)] := ss;
    end;
begin
   while pos('.',s) > 0 do
     begin
       Add2Array( Copy(s,1,Pos('.',s) - 1));
       s := Copy(s,Pos('.',s) + 1,length(s));
     end;
   Add2Array(s);
end;

procedure TForm1.Button1Click(Sender: TObject);
const
s='Fussball.Handball.Tennis';
var
a:SA;
i:Integer;
begin
    Zerlege(s,a);
    for I := low(a) to High(a) do
        Memo1.Lines.add(a[i]);
end;


Pitri_1 - Di 01.11.11 23:38

Danke für die rasche Antwort. Hat mir geholfen ;)