![]() |
Buchstaben zu Zeichen
Hi
Ich möchte gerne Buchstaben aus einem String in Zeichen umsetzen. Hab das mal so versucht:
Delphi-Quellcode:
Aber das funtioniert nur, wenn es nur eine Zeile hat, also:
Edit2.Text:=StringReplace(Edit1.Text,'A','5',[rfReplaceAll, rfIgnoreCase]);
Edit2.Text:=StringReplace(Edit1.Text,'1','V',[rfReplaceAll, rfIgnoreCase]); Edit2.Text:=StringReplace(Edit1.Text,'2','$',[rfReplaceAll, rfIgnoreCase]); ...
Delphi-Quellcode:
Wie bring ich es fertig, damit sich alle gewünschten Zeichen ersetzen lassen?
Edit2.Text:=StringReplace(Edit1.Text,'A','5',[rfReplaceAll, rfIgnoreCase]);
Gruss Blumi |
Re: Buchstaben zu Zeichen
Sali Blumi,
vielleicht hilft dir das?
Delphi-Quellcode:
Grüße vom marabu
function Translate(s: string; sFrom, sTo: string): string;
var i, j: integer; begin Result := s; i := 1; while i <= Length(s) do begin j := Pos(s[i], sFrom); if j > 0 then if j > Length(sTo) then Delete(s, i, 1) else begin Result[i] := sTo[j]; Inc(i); end else Inc(i); end; end; begin Edit2.Text := Translate(Edit2.Text, 'A12', '5V$'); end; |
Re: Buchstaben zu Zeichen
Hallo,
ich weiß zwar nicht von welchen Zeilen du redest, aber eine Schleife könnte doch helfen? for I := 1 to Length(String) do StringReplace(SourceString, ...); du kannst aber auch mit Pos, bzw. PosEx arbeiten. Dabei dürfte die Thread-Suche viele Ergebnisse liefern. Außerdem kannst du mit Ord und Chr arbeiten (Delphi-Hilfe) (so kannst du bspw. prüfen ob es eine Zahl oder ein String ist). |
Re: Buchstaben zu Zeichen
Hi danke, so funktionierts :)
|
Re: Buchstaben zu Zeichen
Hi,
das liegt daran, das du Edit2.text immer wieder mit edit1.text überschreibst, edit1.text sich aber nicht ändert. Das wäre eventuell auch noch eine Alternative:
Delphi-Quellcode:
...
... Private function ReplaceString(S:String):String; ... ... ... function TForm1.ReplaceString(S:String):String; begin S:=StringReplace(S,'A','5',[rfReplaceAll, rfIgnoreCase]); S:=StringReplace(S,'1','V',[rfReplaceAll, rfIgnoreCase]); S:=StringReplace(S,'2','$',[rfReplaceAll, rfIgnoreCase]); Result:=s: end; // Aufruf: Procedure TForm1.Button1Click(Sender:TObject); begin Edit2.text:=ReplaceString(Edit1.text); end; // Edit: hatte versehentlich procedure anstatt function geschrieben, dummer Fehler wenn man gleich im Forum und nicht in der IDE tippt ... |
Re: Buchstaben zu Zeichen
Achso, jetzt weiß ich, was du mit Zeilen meinst - im Quellcode, nicht im Edit
also so gings dann auch:
Code:
LG, Gerhard
Edit2.Text:=StringReplace(Edit1.Text,'A','5',[rfReplaceAll, rfIgnoreCase]);
Edit2.Text:=StringReplace(Edit[u][b]2[/b][/u].Text,'1','V',[rfReplaceAll, rfIgnoreCase]); Edit2.Text:=StringReplace(Edit[u][b]2[/b][/u].Text,'2','$',[rfReplaceAll, rfIgnoreCase]); //... Edit: im Code-Tag funktionieren die Formatierungen nicht :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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