Autor Beitrag
Pitri_1
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 01.11.11 13:44 
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!


Zuletzt bearbeitet von Pitri_1 am Di 01.11.11 22:35, insgesamt 1-mal bearbeitet
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: 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:

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Pitri_1 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Di 01.11.11 22:56 
Ok, mit copy und Pos in eine Array ...
ausblenden 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;

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Pitri_1 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 01.11.11 23:38 
Danke für die rasche Antwort. Hat mir geholfen ;)