![]() |
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 |
Re: Nummer zu String
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo erstmal wieder!
Ich hab schon wieder ein neues Problem: Es geht jetzt mit 3 Zahlen, da macht er alles wie er soll. Aber wenn es weniger sind, gibt er einen Fehler aus und bei mehr als 3 macht er nicht richtig weiter. Ich könnte mir denken dass es daran liegt, dass ich 3 for ... to ... do Schleifen habe, aber ich weis nicht wie ich es so umändern soll, dass es acuh mit 2 oder 5 oder 10 Zahlen geht Den Source hab ich mal drangehängt, vielleicht kann mir ja dadurch jemand weiterhelfen. Wäre nett wenn jemand Rat wüsste, MfG synex |
Re: Nummer zu String
Hallo!
Mach doch für ne neue Frage auch bitte ein neues Thema auf! So hilfst du allen hier indem du die Suchmöglichkeit verbesserst... Danke für dein Verständnis! MfG Florian :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 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