Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Zahlen und Buchstaben zuweisen


read - Mi 10.03.04 21:00
Titel: Zahlen und Buchstaben zuweisen
hi @ all

okay ist vielleicht 'ne dumme frage - bin newbie und habe volle blockade
also ich will buchstaben zahlen zuweisen und umgekehrt - also a=1, b=2............
ich find keinen ansatz..wäre echt nett wenn mir jemand helfen könnte

mit besten dank an alle imvoraus

marco

Moderiert von user profile iconPeter Lustig: Topic verschoben


patrick - Mi 10.03.04 21:11

muss es sich dabei um eine bestimmte zahl handeln?
wenn es keine speziellen zahlen sein sollen kannst du die ascii zeichennummer benutzen:
und so gehts:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
zahl:integer;
begin
...
zahl:=ord('z'//oder ein beliebiges zeichen
...


in diesem fall hätte die variable zahl den wert 122


read - Mi 10.03.04 21:16

hallo patrick

ersteinmal danke für die schnelle antwort
also es sollten schon genaue zuweisungen sein...eigentlich will ich damit ne zurodnung des morsealphabets machen
die frage hatte ich halt so allgemein gehalten, weil ich dacht das es egal ist ob ich sage a='1', oder ob ich sage a='.-'

mfg

marco


Loryn - Mi 10.03.04 22:10

Wie wäre es hiermit:


Delphi-Quelltext
1:
2:
const
  MorseArray: array['a'..'z'of String = ('.-','.--','.---', usw....); // Kenne das Morsealphabet nicht


MorseArray musst du natürlich mit den richtigen Strings füllen. Um jetzt einen Buchstaben in den Morsecode zu wandeln benutzt du nachfolgende Funktion CharToMorse.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
function CharToMorse(aChar: Char): String;
//          liefert MorseCode zu aChar
begin
  if aChar in ['a'..'z']
  then Result := MorseArray[aChar]
  else Result := '';
end;


Gruß Loryn


read - Mi 10.03.04 22:13

danke, werde es gleich mal ausprobieren :D

marco


read - Do 11.03.04 14:57

hi loryn

hab mal deinen code probiert....aber ich glaub ich mach was falsch :oops:
ich will in memo1 den klartext eingeben, und im memo2 soll dat ganze als morsezeichen dargestellt werden
das mit dem gleichzeitigen darstellen klappt....aber nicht als morsezeichen wenn ich die function aufrufe bleibt memo2 leer
hier mal der code bis jetzt


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:
function CharToMorse(aChar: Char): String;
//          liefert MorseCode zu aChar
 const
     MorseArray: array['a'..'z'of String=('.-','-...','-.-','-..','.','..-.',
     '--.','....','..','.---','-.-','.-..','--','-.','---','.--.','--.-','.-.',
     '...','-','..-','...-','.--','-..-','-.--','--..');

begin
  if aChar in ['a'..'z']
  then
  begin
   Result := MorseArray[aChar]
  end
  else
   begin
   Result := '';
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 form1.Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 memo1.Clear;
 memo2.Clear;
end;

procedure TForm1.Memo1Change(Sender: TObject);
var
 achar: char;
begin
 memo2.Lines := memo1.lines;
 if memo1.text<>'' then memo2.text := CharToMorse(achar);
end;

end.


wenn du da den fehler findest, könntest du mir vielleicht helfen?

gruß

marco

Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt


Loryn - Do 11.03.04 15:59

Hallo marco,

Dein Problem liegt hier:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Memo1Change(Sender: TObject); 
var 
 achar: char; 
begin 
 memo2.Lines := memo1.lines; 
 if memo1.text<>'' then memo2.text := CharToMorse(achar); 
end


aChar hat einen zufälligen Inhalt, da aChar nichts zugewiesen wurde.
Ausserdem sollte man von einem String und nicht von einem einzelnen Zeichen in memo1.text ausgehen.
Dann wäre folgendes zu tun:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Memo1Change(Sender: TObject); 
var 
  S, MorseS: String;
begin 
  S := memo1.Text;
  memo2.Clear; // ist jetzt leer
  MorseS := '';
  for i := 1 to Length(S) do
    MorseS := MorseS+CharToMorse(S[i]);
  memo2.Text := MorseS;
end;


Ich habe es nicht ausprobiert, aber es müsste gehen.

Gruß Loryn


iGoA - Fr 12.03.04 12:34

Mal ne allgemeine Frage zum Morsecode:
Wenn ich mir das Gepiepe anhöre, woher weiß ich, wann ein Buchstabe aufhört bzw. ein neuer Anfäng, wenn ich den Anfang verpasst habe?