Entwickler-Ecke

Sonstiges (Delphi) - Dual in Dezi


CindyN - Mi 08.03.06 21:23
Titel: Dual in Dezi
HalliHallo,

ich hab folgendes Programm mit dem man Dualzahlen in Dezimalzahlen umwandeln kann, soweit so gut, funktioniert auch. Aber wie kann ich den User darauf hinweisen (viell. mittels showMessage) das er eine "falsche" Eingabe getätigt hat wenn er Ziffern wie 5,2,7 etc. benutzt?


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:
procedure TForm1.Abbruch_buttonClick(Sender: TObject);
begin
  close;
end;

procedure TForm1.action_buttonClick(Sender: TObject);
  var dualz : string;
      stellenwert, zahl, position, laenge, ziffernwert : Integer;
      zeichen : char;
begin
  dualz := Ed_Dualz.text;
  stellenwert := 1;
  zahl := 0;
  laenge := length(dualz);
  position := laenge;

     while position > 0
         do begin
            zeichen := Dualz[position];
            position := position-1;
            ziffernwert := StrToInt(zeichen);
            zahl := zahl+ziffernwert*stellenwert;
            stellenwert := stellenwert*2;
         end;
     Ausgabe_Label.caption := IntToStr(zahl);
end;

end.


lg

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


Kroni - Mi 08.03.06 21:40

Indem du den String nach alles anderen außer 0 und 1 durchsuchst und die dann entweder rausschmeißt und dabei ne MEldung ausgibts, wie : NUr 1 und 0 erlaubt oder wie auch immer;)


CindyN - Mi 08.03.06 21:48

ich wollte mittels if > 1 alles andere ausschliessen, nur bekomm ich da ne fehlermeldung... was für ein befehl nehm ich dann?


Kroni - Mi 08.03.06 21:53

Du wirst wohl eine Fehlermeldung bekommen, weil 1 eine Zahl ist, und du hast dort doch einen String vorliegen oder?
D.h. du müsstest evtl. jeden einzelnen Buchstaben checken, in eine Zahl umforem und dann gucken, ob das größer als eins ist und dann rauswerfen.
Oder du machst eine Menge aus Strings, in der nur die 0 und 1 enthalten ist....also als ZEICHEN, nicht als Zahl, deshalb in Anführungszeichen => ' <= diese musste du dafür benutzen
Und dann kannste Fragen: if zeichen not in menge then rauswerfen;