![]() |
Vokal ersetzen
Hallo,
ich habe ein Problem. Ich bin zwar erst neu hier, doch ich hoffe ihr könnt mir helfen. Ich soll alle Vokale eines Textes den ich zuvor geöffnet habe, durch einen anderen Vokal ersetzen, den ich in einem Editfeld eingebe. Das Hochladen des Textes (in Listbox) habe ich schon. Ich weis nur nicht wie ich die Vokal (muss nur die in der 1. Zeile ändern) ändere. Kann mir jemand helfen? |
AW: Vokal ersetzen
Hallo und Willkommen in der DP :dp:,
langsame, dafür einfache Möglichkeit: jeden Vokal mit ![]() |
AW: Vokal ersetzen
Delphi-Quellcode:
gegf. wegen Großkeinschreibung 2 mal mit doppeltem UpperCase
Listbox1.Items[0] := StringReplace(Listbox1.Items[0], WasAuchImmer,Edit1.Text,[rfReplaceAll]);
|
AW: Vokal ersetzen
Mit einer Schleife habe ich es auch schon versucht doch die funktioniert nicht richtig.
Ich wollte es mit IF A,E,I,O,U und in klein geschrieben halt machen. Wie kann ich jetzt das Editfeld einbauen? Mein Quelltext: v soll der eingegebene Vokal sein. FOR z:=1 TO LENGTH(txt[z]) DO IF (txt[z]= 'a')or (txt[z]= 'e')or (txt[z]= 'i') or (txt[z]= 'o') or (txt[z]= 'u') or (txt[z]= 'A') or (txt[z]= 'E') or (txt[z]= 'I') or (txt[z]= 'O') or (txt[z]= 'U') THEN txt[z]:=v; |
AW: Vokal ersetzen
Gar nicht. Du willst ja nicht das Edit ändern, sondern den String, der da drin steht. Schreib Dir also eine Funktion, wo ein String reinkommt, bearbeitet wird und als Result zurückgegeben wird. Z.B.:
Delphi-Quellcode:
Das ist zwar weder schön noch schnell, sollte aber funktionieren.
function ReplaceChar(const s: string; Old, New: Char): string;
begin Result := StringReplace(s, Old, New, [rfReplaceAll]); end; [edit] Achja, aufrufen könntest Du das dann so:
Delphi-Quellcode:
[/edit]
Edit1.Text := ReplaceChar(Edit1.Text, 'a', 'u');
|
AW: Vokal ersetzen
Delphi-Quellcode:
var
rep:String; begin rep := 'ö'; Listbox1.Items[0] := StringReplace( StringReplace(Listbox1.Items[0], AnsiLowerCase(rep) ,AnsiLowerCase(Edit1.Text),[rfReplaceAll]) , AnsiUpperCase(rep) ,AnsiUpperCase(Edit1.Text),[rfReplaceAll]) end; |
AW: Vokal ersetzen
Ich will ja nur in ein Editfeld zu Beispiel u eingeben. In der Listbox sollten dann alle Vokale durch das u ersetzt werden.
|
AW: Vokal ersetzen
Sorry, ich hatte übersehen daß es um alle Vokale geht
Delphi-Quellcode:
Function ReplaceAllVocals(const s:String;New:Char):String;
var i:Integer; begin Result := s; For i := 1 to Length(s) do case s[i] of 'a','e','u','i','o','ü','ö','ä':Result[i] := AnsiLowerCase(New)[1]; 'A','E','U','I','O','Ü','Ö','Ä':Result[i] := AnsiUpperCase(New)[1]; end; end; procedure TForm2.Button1Click(Sender: TObject); begin Showmessage(ReplaceAllVocals('Was Auch immer hier stehen könnte','o')); end; |
AW: Vokal ersetzen
Dann übergib die entprechenden Eigenschaften als Parameter an die Funktion.
|
AW: Vokal ersetzen
Delphi-Quellcode:
so sollte es klappen.
FOR z:=1 TO LENGTH(txt) DO
IF (txt[z]= 'a')or (txt[z]= 'e')or (txt[z]= 'i') or (txt[z]= 'o') or (txt[z]= 'u') or (txt[z]= 'A') or (txt[z]= 'E') or (txt[z]= 'I') or (txt[z]= 'O') or (txt[z]= 'U') THEN txt[z]:=v; Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz