Free Pascal programmieren lernen.
Zeichen ersetzen
Zeichen ersetzen die Funktion
Du kannst ein Zeichen oder auch ein Wort durch die Funktion stringreplace() ersetzen. Dieser Befehl ist wie folgt aufgebaut:
Quellcode:
<code>stringreplace(stringEingabe, word1, word2, [rfReplaceAll, rfIgnoreCase]);</code>
- Stringreplace ist die Funktion
- String Eingabe der Text bei dem Zeichen oder Wörter ausgetaucht werden sollen
- Word1 ist das Wort das im Text ersetzt werden soll
- Word2 ist das Wort durch das Wort1 ersetzt werden soll
- rfReplaceAll sagt dem Programm das alle Zeichen und Wörter im String ausgetauscht werden sollen.
- rfIgnoreCase = Suche unabhängig von Groß- und Kleinschreibung
Zeichen ersetzen ein kleines Beispiel:
Wir möchten eine Benutzeroberfläche entwickeln in der wir einen beliebigen String eingeben können und in diesem String X beliebige Zeichen und Wörter ersetzen. In Abbildung 1.00 String Replace siehst du eine GUI mit 4 Editfeldern für die Eingabe und Ausgabe. Das Editfeld unter dem Label mit der Caption String Eingabe trägt den Namen EdtEingabe. Das Editfeld unter dem Label mit der Caption Zu ersetzendes Wort trägt den Namen EdtErsetzendesWort. Das Editfeld unter dem Label mit der Beschriftung Ersetzen durch trägt den Namen EdtErsetzenDurch. Das Editfeld unter dem Label mit dem Namen String Ergebnis trägt den Namen EdtStringErgebnis. Der Button trägt den Namen BtnErsetzen. Nachfolgend findest du nun den Quelltext für das Austauschen der Zeichen und Wörter. Die Prozedure ist eine in der Button Komponenten gespeicherten ONClick() Ereignis.
Quelltext:
procedure TForm1.BtnErsetzenClick(Sender: TObject);
var
stringEingabe : string;
word1, word2 : string;
stringErgebnis : string;
begin
stringEingabe:= EdtEingabe.Text;
word1 := EdtErsetzendesWort.Text;
word2 := EdtErsetzenDurch.Text;
stringErgebnis := stringreplace(stringEingabe, word1, word2, [rfReplaceAll, rfIgnoreCase]);
EdtStringErgebnis.Text := stringErgebnis;
end;
In der Zeile 03 bis 05 lege ich die variablen fest mit denen ich in der Prozedure arbeiten möchte. Man kann auch anstelle die Variablen, sofort den Namen des Editfeldes nehmen und die Eigenschaft Text anhängen. Bei späteren Programmen wirst du allerdings die Usereingaben für einen DAU Nutzer absichern. Ein DAU Nutzer ist der dümmste anzunehmende Nutzer. In Zeile 07 bis 09 übergebe ich die Inhalte der Editfeldern den String Variablen. Zeile 10 speichert das Ergebnis als String vor dem ist Zuweisungszeichen. Rechts neben dem Zuweisungszeichen ist die Funktion stringreplace(String,word1,word2, [rfReplaceAll, rfIgnoreCase]);). Die Beschreibung dazu findest du oben. In Zeile 11 wird das Ergebnis dem Edfitfeld für die Ausgabe zugewiesen. Zeile 12 beendet die Funktion.