![]() |
Buchstaben konvertieren
Ich habe diesen Code hier:
Delphi-Quellcode:
Und hiermit wird der Text der in einem Memo steht, konvertiert und in ein RichEdit verfrachtet:
const
// #1 abc : Array[1..26] of String = ('a','b','c','d','e','f','g','h','i','j', 'k','l','m','n','o','p','q','r','s','t', 'u','v','w','x','y','z'); // #2 char1 : Array[1..26, 1..2] of Char = (('A','4'),('B','B'),('C','('),('D','Ð'), ('E','3'),('F','ƒ'),('G','g'),('H','h'), ('I','1'),('J','j'),('K','{'),('L','£'), ('M','m'),('N','n'),('O','0'),('P','p'), ('Q','q'),('R','r'),('S','$'),('T','7'), ('U','µ'),('V','v'),('W','w'),('X','×'), ('Y','¥'),('Z','2'));
Delphi-Quellcode:
Jetzt meine Frage: wenn ich #2 (s.o.) ändere in:
procedure TForm1.JvXPButton1Click(Sender: TObject);
var Text: string; i : Integer; begin Text := LowerCase(Memo1.Text); for i := 1 to 26 do begin while Pos(abc[i], Text) <> 0 do begin Text[Pos(abc[i], Text)] := char1[i,Random(2)+1]; end; end; RichEdit1.Text := Text; end;
Delphi-Quellcode:
Dann bekomme ich in dieser Reihe Fehler:
('a','b','c','Ð','e','f','g','h','i','j',
'k','l','m','n','o','p','q','r','s','t', 'u','v','w','x','y','z')
Delphi-Quellcode:
Wie kann ich eine EINFACHE Konvertierungsmethode schreiben?
Text[Pos(abc[i], Text)] := char1[i,Random(2)+1];
Beispiel:
Delphi-Quellcode:
Und das kovertierte ungefähr so:
// #1
abc : Array[1..26] of String = ('a','b','c','d','e','f','g','h','i','j', 'k','l','m','n','o','p','q','r','s','t', 'u','v','w','x','y','z');
Delphi-Quellcode:
// #1
abc : Array[1..26] of String = ('1','2','3','4','5','6','7','8','9','10', '11','12','13','14','15','16','17','18','19','20', '21','22','23','24','25','26'); |
Re: Buchstaben konvertieren
Hi,
schau dir mal ![]() |
Re: Buchstaben konvertieren
Und wenn du später auch noch wissen willst, was diese Konstante bedeutet, kannst du auch
Delphi-Quellcode:
schreiben. (Oder wars doch ein großes a?)
ord(DeinBuchstabe)-Ord('a')
// Und wenn du 'Buchstaben konvertieren' mal in die Suche eingegeben hättest, hättest du den Befehl auch ohne einen neuen Thread gefunden... |
Re: Buchstaben konvertieren
Zitat:
|
Re: Buchstaben konvertieren
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Text: string; i : Integer; begin Text := LowerCase(Memo1.Text); for i := 1 to 26 do begin while Pos(alpha[i], Text) <> 0 do begin Text[Pos(alpha[i], Text)] := haxxor[i]; // Inkomptbl. Typen Char und WideChar end; end; RichEdit1.Text := Text; end; Wie und was muss ich in dieser Reihe oder in dem Block ändern, damit es WideChar kompatibel ist? |
Re: Buchstaben konvertieren
Definiere Text als WideString.
|
Re: Buchstaben konvertieren
Mhh.. mit dem Code oben, möchte ich aus einem K ein κ (kappa) machen.
Leider bekomme ich ins RichEdit nur ein "?" |
Re: Buchstaben konvertieren
grmpf. Die VCl stellt leider nur Ansistrings dar, sodass du nicht ohne weiteres mit Unicode arbeiten kannst. Probier mal die Eigenschaft Charset von TFont.
|
Re: Buchstaben konvertieren
Meines Wissens kann man im RichEdit verschiedene Schriftarten nutzen. In Symbol müsste das griechische Alphabet enthalten sein.
Ansonsten nutze Unicode-fähige Komponenten. Das Thema hatten wir aber schon zig mal hier. Aber das gehört nicht mehr zum Ausgangsthema, in dem es sich lediglich um ein Programmierproblem handelte. |
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