Autor Beitrag
Hasche
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: Fr 18.01.08 23:42 
Ich wollte ein kleines Prog erstellen.. ganz einfach 2 Edit-Felder und einen Button zum umwandeln..
Das heißt, die Schrift soll verschnörkelt werden, jedoch ohne andere Schriftart zu verwenden, sondern eher Zeichen zu verwenden.

Bsp:

man gibt in edit1 ein: musik, kunst, fotografieren, freunde, party, tv, inet
nach buttonklick gibt edit2 aus: мμsίк, кμηsт, fσтσgяαfίεяεη, fяεμη∂ε, pαятγ, тυ, ίηεт

was für nen code muss ich verwenden, damit die zeichen ungewandelt werden, dass ich jeden buichstaben definieren muss is mir klar, nur mit welchem quelltext? oO

hatte es mit
ausblenden Delphi-Quelltext
1:
if edit1.Text='a' then edit2.Text:='b';					

versucht, nur komm ich damit nicht weiter, da da das a nur übersetzt wird, wenn auch nur ein a in edit1 drinsteht.. ab "ac" bei edit1 funktioniert es ja schon nicht mehr.
ein weiteres problem sind die zeichen, dass die delphi nicht wirklich akzeptiert o.ô

danke :)
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 765
Erhaltene Danke: 130



BeitragVerfasst: Sa 19.01.08 00:19 
(Ver)such mal AnsiReplaceStr.

ub60
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Sa 19.01.08 00:24 
Grundsätzlich musst du nur mit einer For-Schleife die einzelnen Zeichen deines Eingabe-Strings durchgehen, also etwa so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Edit2.Clear;
For i := 1 To Length(Edit1.Text) Do
  Case Edit1.Text[i] Of
    'a': Edit2.Text := Edit2.Text + 'á';
    'b': Edit2.Text := Edit2.Text + 'B';
    .....
    Else Edit2.Text := Edit2.Text + Edit1.Text[i] // Falls ein Zeichen nicht umgewandelt werden kann
  End;


Das größere Problem bei dieser Aufgabe ist aber die fehlende Unicode-Unterstützung von Delphi, d.h. du kannst mit den normalen Delphi-Komponenten die Zeichen, die du in deinem Beispiel angegeben hast, nicht nutzen. Zu diesem Thema dürfte dir aber die Forensuche weiterhelfen.
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Sa 19.01.08 03:47 
Da hatte ich doch auch mal sowas in einem Programm....
Das war noch mit Delphi 3 Programmiert, sollte aber auch unter neueren Versionen laufen.

ausblenden volle Höhe Delphi-Quelltext
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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
{Crypted ein Zeichen}
{FGHJLQTVWXZ}
{dfghjlmpqrstvwz}
{5789-~,.;}
function Cryptit(Text : String): String;
var i : Integer;
    Zeichen : Char;
    Neu : String;
    Crypt : String;
begin
Neu := '';
for i := 1 to Length(Text) do
begin
Zeichen := Text[i];
  case Zeichen of
    'A' : Crypt :='Ã';
    'a' : Crypt :='ã';
    'B' : Crypt :='ß';
    'b' : Crypt :='þ';
    'C' : Crypt :='Ç';
    'c' : Crypt :='ç';
    'D' : Crypt :='Ð';
    'E' : Crypt :='Ê';
    'e' : Crypt :='ê';
    'H' : Crypt :='|-|';
    'I' : Crypt :='Î';
    'i' : Crypt :='ì';
    'K' : Crypt :='|<';
    'k' : Crypt :='|«';
    'M' : Crypt :='|`´|';
    'N' : Crypt :='Ñ';
    'n' : Crypt :='ñ';
    'O' : Crypt :='Ø';
    'o' : Crypt :='ô';
    'P' : Crypt :='¶';
    'R' : Crypt :='®';
    'S' : Crypt :='§';
    'U' : Crypt :='Ú';
    'u' : Crypt :='µ';
    'x' : Crypt :='×';
    'Y' : Crypt :='Ý';
    'y' : Crypt :='ÿ';
    '0' : Crypt :='º';
    '1' : Crypt :='¹';
    '2' : Crypt :='²';
    '3' : Crypt :='³';
    '4' : Crypt :='four';
    '6' : Crypt :='sex';
    ' ' : Crypt :=' ';
    '§' : Crypt :='S';
    ':' : Crypt :='¦';
    '+' : Crypt :='#';
    '_' : Crypt :='¯';
    '#' : Crypt :='+';
    '?' : Crypt :='¿';
    '¿' : Crypt :='?';
    '!' : Crypt :='¡';
    '¡' : Crypt :='!';
    '¯' : Crypt :='_';
  else
    Crypt := Zeichen;
  end;
Neu := Neu + Crypt;
end;
Result := Neu;
end;

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Sa 19.01.08 09:07 
Wenn du wirklich die Zeichen haben willst, die du da im Beispiel genannt hast, musst du mit Widestrings und Unicode-fähigen Komponenten arbeiten. Z.B. den TNT Unicode-Controls.

_________________
We are, we were and will not be.
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: Sa 19.01.08 14:58 
Die Zeichen in meiner function sollten auch ohne Unicode funzen.

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Sa 19.01.08 18:06 
Ich hatte mal probiert (D5 und D7), das Copyright-Zeichen als String uncodiert einfach so in den Code zu schreiben, und es gab eine Fehlermeldung.

Nunja, ab D 2007 wird doch aber Unicode unterstützt, oder etwa nicht?
Hasche Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 43



BeitragVerfasst: So 20.01.08 01:40 
danke für die antworten.. habe es jetzt so versucht:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.BitBtn1Click(Sender: TObject);
var i: integer;
begin
For i := 1 To Length(Edit1.Text) Do
  Case Edit1.Text[i] Of
    'a': Edit2.Text := Edit2.Text + loadfromfile(a.txt);
    'y': Edit2.Text := Edit2.Text + 'ý';
    Else Edit2.Text := Edit2.Text + Edit1.Text[i]
  End;
end;


mit dem y klappt es, also wenn man die zeichen dann in '...' angibt, nur wollte ich probieren, die zeichen aus nem txt file zu laden, sodass ich die zeichen verwenden kann, die ich möchte zB α, was in delphi direkt ja nur als ? angezeigt wird.

wie kann ich die zeichen aus nem file laden lassen, weiß nicht, wie ichs einfügen soll? :(

danke
DrRzf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260

Win XP Prof
D7 Enterprise
BeitragVerfasst: So 20.01.08 20:09 
für jedes Zeichen eine eigene Datei ?
Deine Festplatte wirds dir danken, besonders wenn du mit dieser Routine einen längeren Text wandelst.

Wenn dann alles in eine Datei packen (Tabelle mit Zeichen-ersetzen durch), beim Programmstart diese laden, und
dann mit ner routine passende Zeichen ersetzen.

_________________
rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.