![]() |
Buchstaben ersetzen
Hallo!
Ich komme mal wieder nicht weiter. Ich möcht einen Text in Memo1 einlesen, alle A's durch B's ersetzen und dann in Memo2 ausgeben. Nur funktioniert das Ganze nichso. Kann mir Jemand helfen?
Delphi-Quellcode:
Das mit dem 0 to 10 in der zweiten For-Schleife is nur zu Test zwecken, wenns bei den ersten 10 klappt, muss es auch bei den nächsten 10 funktionieren.. xDprocedure TForm1.Button1Click(Sender: TObject); var i, j:Integer; Datei:TextFile; Zeile: String; zeichen: char; begin AssignFile(Datei, 'Liesmich.TXT'); Reset(Datei); While not EOF(Datei) do Begin Readln(datei,Zeile); Memo1.Lines.Add(Zeile); end; closeFile(datei); for i:=0 to Memo1.Lines.Count do begin zeile:=Memo1.Lines[i]; for j:= 0 to 10 do begin zeichen := zeile[j]; if zeichen = 'b' then begin zeile[j] := 'a'; end; end; Memo2.Lines.Add(Zeile); end; end; Danke schonmal! :hi: |
Re: Buchstaben ersetzen
Versuch es mal mir ReplaceString()
|
Re: Buchstaben ersetzen
das einfachste:
Delphi-Quellcode:
Memo1.LoadFromFile('Liesmich.TXT');
Memo2.Lines.Text := StringReplace(Memo1.Lines.Text, 'a', 'b', [rfReplaceAll]); |
Re: Buchstaben ersetzen
Danke Leute! So klappt das Einwand frei.. xD
|
Re: Buchstaben ersetzen
Hallo Ricoo,
Zitat:
![]() Gruß Hawkeye |
Re: Buchstaben ersetzen
Zitat:
|
Re: Buchstaben ersetzen
In Delphi 2005 Personal hat das mit StringReplace super funktioniert.
Mein Problem ist jetzt aber, dass das ne Hausaugabe war und mein Lehrer nur Delphi 3 hat und sich strikt weigert irgentwas Anderes zu benutzen. Jetzt wollt ich das halt alles nochmal in Delphi 3 schreiben aber da scheint es die StringReplace Funktion noch nicht zu geben. -.- Hat jemand vielleicht noch einen anderen Vorschlag? |
Re: Buchstaben ersetzen
|
Re: Buchstaben ersetzen
Zitat:
Delphi-Quellcode:
Mit Memo1.Lines.Text sparst Du noch ein paar Zeilen, wollte Deinen Source aber so wenig wie möglich verändern. Code ist ungetestet - viel Spaß damit!
procedure TForm1.Button1Click(Sender: TObject);
var i, j :Integer; Zeile : String; begin { AssignFile(Datei, 'Liesmich.TXT'); Reset(Datei); While not EOF(Datei) do Begin Readln(datei,Zeile); Memo1.Lines.Add(Zeile); end; closeFile(datei); } Memo1.Lines.LoadFromFile('Liesmich.TXT'); // Etwas einfacher :-) for i:=0 to (Memo1.Lines.Count-1) do // -1 nicht vergessen! begin zeile := Memo1.Lines[i]; for j:= 1 to length(zeile) do // ist etwas allgemeiner gehalten, und: Bei "1" anfangen! begin if zeile[j] = 'b' then zeile[j] := 'a'; end; Memo2.Lines.Add(Zeile); end; end; BTW, bei Deiner Version werden Großbuchstaben "B" nicht berücksichtigt. Sollten mehrere Zeichen umgewandelt werden, dann würde ich Dir die CASE-Anweisung empfehlen. Spart bei vielen Zeichen eine Menge Code und Fehlermöglichkeiten :-) SCRaT |
Re: Buchstaben ersetzen
normal läuft das doch so, oder...?
Delphi-Quellcode:
das ging sogar (beinahe) unter tp, 3.0... :-), nur dass du da kein tMemo hast.. :zwinker:
procedure TForm1.Button1Click(Sender: TObject);
var i, j:Integer; Datei:TextFile; Zeile: String; zeichen: char; begin AssignFile(Datei, 'Liesmich.TXT'); Reset(Datei); While not EOF(Datei) do Begin Readln(datei,Zeile); for i := 0 to length(zeile) do begin if zeile[i] = 'a' then zeile[i] := 'b'; // ... und hier noch 'n paar abfragen oder cases.... end; Memo1.Lines.Add(Zeile); end; closeFile(datei); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 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