Delphi-PRAXiS

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

synex 14. Sep 2003 17:59

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

flomei 14. Sep 2003 18:28

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 01:23 Uhr.

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