![]() |
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 |
Re: Nummer zu String
Die Zeichen eines String kannst du mit deren Index ansprechen. Achtung Delphi Strings fangen bei eins an!
|
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; |
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]; |
Re: Nummer zu String
hui danke für die schnellen Antworten, ich probiers mal aus
danke nochmal, synex |
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 |
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; |
Re: Nummer zu String
Grausam. Mach doch bitte aus den if's eine case Konstruktion. Danke.
|
Re: Nummer zu String
Ja und was is mit den Sonderzeichen, Satzzeichen usw. ???
MfG Florian :hi: |
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 10:58 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