Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Nummer zu String (https://www.delphipraxis.net/8880-nummer-zu-string.html)

synex 14. Sep 2003 14:35


Nummer zu String
 
Hi Leute!

Ich bin grade dabei ein Programm zu schreiben, welches eine Nummer (z.B. 6542317) in die daraus möglichen Buchstabenkombinationen umwandelt (also 2=ABC, 3=DEF wie beim SMS schreiben). Jetzt hab ich da aber ein Problem bei:

Wie zerpflück ich eine zahl 1234 in die einzelnen zahlen 1, 2, 3 und 4? Ich denke am besten speichere ich die Zahlen in einem dynamischen Array, die Länge von dem kriege ich durch length(inttostr(nummer)) raus, aber wie krieg ich die erste Zahl auf die erste Position, die zweite auf die zweite und so weiter?

Das wird denke ich mal nicht das einzige Problem bei dem Programm sein, aber fürs erste hilft mir das weiter!

MfG synex

Luckie 14. Sep 2003 14:39

Re: Nummer zu String
 
Die Zeichen eines String kannst du mit deren Index ansprechen. Achtung Delphi Strings fangen bei eins an!

axelf98 14. Sep 2003 14:43

Re: Nummer zu String
 
Hmm... Vielleicht so:

Delphi-Quellcode:
var S: String;

...
function FindeHandyBuchstaben(X:Pchar) : String;
begin
result := 'Keine Zahl!';
case X of
'1' : result := ' ';
'2' : result := 'ABC';
'3' : result := 'DEF';
'4' : result := 'GHI';
'5' : result := 'JKL';
'6' : result := 'MNO';
'7' : result := 'PQRS';
'8' : result := 'TUV';
'9' : result := 'WXYZ';
'0' : result := ' ';
end;
end;
...

procedure Button1Click(Sender);
var i : integer;
begin

S := '1284';

for i := 1 to length(S) do
Edit1.Text := Edit1.Text + FindeHandyBuchstaben(S[i])+ '__' ;

// Edit1.Text = ABC__DEF__TUV__GHI

end;

Dagon 14. Sep 2003 14:46

Re: Nummer zu String
 
das ist ganz einfach:
Delphi-Quellcode:
var dynamischesArray: array of String;
  ...
  s := IntToStr(nummer);
  setlength(dynamischesArray, length(s));
  for k := 0 to length(s)-1 do
    dynamischesArray[k] := s[k+1];

synex 14. Sep 2003 14:50

Re: Nummer zu String
 
hui danke für die schnellen Antworten, ich probiers mal aus

danke nochmal, synex

synex 14. Sep 2003 14:55

Re: Nummer zu String
 
also ich hab grade axelf98 seinen Vorschlag ausprobiert, aber er sagt mir bei

case x of
[...]

ordinaltyp erforderlich

Ich hab schon probiert irgendwie mit strtoint(x) aber dann hatter beim Start vom Programm gemmeckert Zugriffsverletzung irgendwo ...

Wenn du mir da noch nen Tipp geben könntest wie ich das hinbekomm wär ich dir echt dankbar.

MfG synex

axelf98 14. Sep 2003 14:56

Re: Nummer zu String
 
Hmm, ich hatte den Code einfach so geschrieben.. Hat natürlich nicht geklappt :oops:

Der hier geht schon besser:

Delphi-Quellcode:
function FindeHandyBuchstaben(X:Char) : String;
begin
result := 'Keine Zahl!';

case X of             // Wer lieber Caselisten mag:
'1' : result := ' ';
'2' : result := 'ABC';
'3' : result := 'DEF';
'4' : result := 'GHI';
'5' : result := 'JKL';
'6' : result := 'MNO';
'7' : result := 'PQRS';
'8' : result := 'TUV';
'9' : result := 'WXYZ';
'0' : result := ' ';
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
 var i : integer;
begin
S := '2243';
edit1.clear;
for i := 1 to length(S) do
Edit1.Text := Edit1.Text + FindeHandyBuchstaben(S[i]) + ' ';
// TEXT = ABC ABC GHI DEF
end;

Luckie 14. Sep 2003 14:59

Re: Nummer zu String
 
Grausam. Mach doch bitte aus den if's eine case Konstruktion. Danke.

flomei 14. Sep 2003 15:03

Re: Nummer zu String
 
Ja und was is mit den Sonderzeichen, Satzzeichen usw. ???

MfG Florian :hi:

synex 14. Sep 2003 15:03

Re: Nummer zu String
 
wow vielen Dank axelf98!! Jetzt hats geklappt!

Ich verscuh jetzt mal weiter mein Glück, mal schaun wo das nächste Problem lauert!

MfG synex


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:39 Uhr.
Seite 1 von 2  1 2      

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