AGB  ·  Datenschutz  ·  Impressum  







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

Buchstaben konvertieren

Ein Thema von Tommy1988 · begonnen am 17. Jun 2007 · letzter Beitrag vom 18. Jun 2007
Antwort Antwort
Tommy1988
(Gast)

n/a Beiträge
 
#1

Buchstaben konvertieren

  Alt 17. Jun 2007, 09:41
Ich habe diesen Code hier:

Delphi-Quellcode:
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'));
Und hiermit wird der Text der in einem Memo steht, konvertiert und in ein RichEdit verfrachtet:
Delphi-Quellcode:
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;
Jetzt meine Frage: wenn ich #2 (s.o.) ändere in:
Delphi-Quellcode:
('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')
Dann bekomme ich in dieser Reihe Fehler:
Text[Pos(abc[i], Text)] := char1[i,Random(2)+1]; Wie kann ich eine EINFACHE Konvertierungsmethode schreiben?

Beispiel:
Delphi-Quellcode:
// #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');
Und das kovertierte ungefähr so:
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');
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Buchstaben konvertieren

  Alt 17. Jun 2007, 09:49
Hi,

schau dir mal Delphi-Referenz durchsuchenOrd an. Davon dann 64 (glaube ich) subtrahieren und du hast deine erste Konvertierung realisiert.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Buchstaben konvertieren

  Alt 17. Jun 2007, 09:55
Und wenn du später auch noch wissen willst, was diese Konstante bedeutet, kannst du auch
ord(DeinBuchstabe)-Ord('a') schreiben. (Oder wars doch ein großes a?)

// Und wenn du 'Buchstaben konvertieren' mal in die Suche eingegeben hättest, hättest du den Befehl auch ohne einen neuen Thread gefunden...
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#4

Re: Buchstaben konvertieren

  Alt 18. Jun 2007, 15:28
Zitat:
// Und wenn du 'Buchstaben konvertieren' mal in die Suche eingegeben hättest, hättest du den Befehl auch ohne einen neuen Thread gefunden...
Hab ich gemacht, grade wieder, NIX gefunden
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#5

Re: Buchstaben konvertieren

  Alt 18. Jun 2007, 16:27
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?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Buchstaben konvertieren

  Alt 18. Jun 2007, 16:32
Definiere Text als WideString.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#7

Re: Buchstaben konvertieren

  Alt 18. Jun 2007, 16:35
Mhh.. mit dem Code oben, möchte ich aus einem K ein κ (kappa) machen.

Leider bekomme ich ins RichEdit nur ein "?"
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Buchstaben konvertieren

  Alt 18. Jun 2007, 16:57
grmpf. Die VCl stellt leider nur Ansistrings dar, sodass du nicht ohne weiteres mit Unicode arbeiten kannst. Probier mal die Eigenschaft Charset von TFont.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Buchstaben konvertieren

  Alt 18. Jun 2007, 17:33
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.
  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 13:20 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