Habe noch ein Teil hinzugefügt.
Nun habe ich ja die Frage, die wie folgt aussieht;
Frage:='Wer war Helmut Kohl?§russischer Präsident§Bundeskanzler$';
Dies frage ordne ich nun e zu;
e:=Frage[c];
Nun kommt meine Abfrage:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button8Click(Sender: TObject); var Pos,L1,L: integer; Aus,text: string; begin pos:=0; repeat Pos:=Pos+1; aus:=copy(e,Pos,1); If aus <> '§' then text:=text+aus; panel2.caption:=text; until (aus = '§') or (aus = '$'); |
Nach dem das geschehen ist steht in meinem Panel auch "Wer war Helmut Kohl?"
Nun soll e der Rest der Zeichenkette zugeordnet werden.
Dies versuche ich so:
Delphi-Quelltext
1: 2: 3: 4: 5:
| L1:=Length(e); If pos = L1 then exit;
L:=Length(Text); Delete(e,1,L+1); |
Schreibe ich nun noch darunter als Bsp.;
Delphi-Quelltext
Dann steht da auch "russischer Präsident§Bundeskanzler$"
Das heist doch das e auch der Rest zugewiesen wurde oder?
Doch schreibe ich nun die Auswahl erneut und ersetzte das Label2.caption durch Button5.caption, so steht in diesem Button:
"Wer war Helmut Kohl?Bundeskanzler"
Das russicher Präsident wird einfach weggelassen.
Alles was ich jetzt geschrieben habe steht in einer Procedure
Es sieht nun so aus;
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: 30:
| procedure TForm1.Button8Click(Sender: TObject); var Pos,L1,L: integer; Aus,text: string; begin pos:=0; repeat Pos:=Pos+1; aus:=copy(e,Pos,1); If aus <> '§' then text:=text+aus; panel2.caption:=text; until (aus = '§') or (aus = '$');
L1:=Length(e); If pos = L1 then exit;
L:=Length(Text); Delete(e,1,L+1);
repeat Pos:=Pos+1; aus:=copy(e,Pos,1); If aus <> '§' then text:=text+aus; Button5.caption:=text; until (aus = '§') or (aus = '$');
end; |
Ich habe allerdings bemerkt, das wenn ich die zweite repeat-Schleife weg lasse und erneut den Button drücke, dass dann in dem Panel der zweite Abschnitt geschrieben wird. Also erst steht da: "Wer war Helmut Kohl?" und dann "russischer Präsident".
Gibt es eine Möglichkeit, dass das Ergebniss von dem zweiten durchlauf nicht mehr ins Panel geschrieben wird sonder in einen Button? Oder irgendwelche anderen Lösungvorschläge?
Wäre nett wenn mir mal einer ein Bsp. zeigen könnt.
MfG Througer:
Edit:
Habe als Dateien mal das Schema angehängt wie es ablaufen sollte. Vielleicht erklärt das einiges. Bin mit der Repeat-Schleife ganz zufriden, denn dann wird es ja auch ruchtig ausgegeben. Auch wenn ich den Button erneut drücke wird der richtige nächste Teil ausgegeben. Nur nicht da wo es soll und auch nicht ganz so wie beschrieben.
Hoffe das mir da einer helfe kann. Komme da echt nicht mehr weiter.