AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Buchstaben zu Zeichen

Ein Thema von Blumi · begonnen am 19. Jul 2005 · letzter Beitrag vom 19. Jul 2005
Antwort Antwort
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#1

Buchstaben zu Zeichen

  Alt 19. Jul 2005, 20:11
Hi

Ich möchte gerne Buchstaben aus einem String in Zeichen umsetzen.

Hab das mal so versucht:

Delphi-Quellcode:
  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]);
...
Aber das funtioniert nur, wenn es nur eine Zeile hat, also:

  Edit2.Text:=StringReplace(Edit1.Text,'A','5',[rfReplaceAll, rfIgnoreCase]); Wie bring ich es fertig, damit sich alle gewünschten Zeichen ersetzen lassen?


Gruss Blumi
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Buchstaben zu Zeichen

  Alt 19. Jul 2005, 20:21
Sali Blumi,

vielleicht hilft dir das?

Delphi-Quellcode:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#3

Re: Buchstaben zu Zeichen

  Alt 19. Jul 2005, 20:22
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).
  Mit Zitat antworten Zitat
Benutzerbild von Blumi
Blumi

Registriert seit: 11. Jul 2005
Ort: Basel
96 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Buchstaben zu Zeichen

  Alt 19. Jul 2005, 20:25
Hi danke, so funktionierts
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#5

Re: Buchstaben zu Zeichen

  Alt 19. Jul 2005, 20:32
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 ...
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#6

Re: Buchstaben zu Zeichen

  Alt 19. Jul 2005, 21:24
Achso, jetzt weiß ich, was du mit Zeilen meinst - im Quellcode, nicht im Edit
also so gings dann auch:
Code:
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]);
//...
LG, Gerhard

Edit: im Code-Tag funktionieren die Formatierungen nicht
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz