Einzelnen Beitrag anzeigen

Marcel2906

Registriert seit: 17. Aug 2011
Ort: Warendorf
112 Beiträge
 
Delphi 2010 Professional
 
#1

Hex to Bin -> Falsche eingabe

  Alt 19. Aug 2011, 06:39
Hey Leute,

ich habe ein Programm geschrieben, dass Hexadezimalzahlen in Dezimalzahlen umrechnet.
Aber ein wichtiges Element bekomme ich nicht hin.
Und zwar bräuchte ich ein Art Befehl, der sagt.

Code:
If c = g bis z then
writeln('Fehler')
beginne von vorne.
gibt es so etwas?

Hier mein Code:

Code:
program HexToDez;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  a,b,d: integer;
  h,c,y: string;
begin

repeat

writeln('Bitte Hexadezimalzahl eingeben:');
readln(h);
a:= 1;
c:= Upcase(h[a]);

if c='A' then
     begin
      d:=10;
      c:=IntToStr(d);
     end;

    if c='B' then
     begin
      d:=11;
      c:=IntToStr(d);
    end;

    if c='C' then
     begin
      d:=12;
      c:=IntToStr(d);
    end;

    if c='D' then
     begin
      d:=13;
      c:=IntToStr(d);
    end;

    if c='E' then
     begin
      d:=14;
      c:=IntToStr(d);
    end;

    if c='F' then
     begin
      d:=15;
      c:=IntToStr(d);
    end;

    d:=StrToInt(c);
    b:=d;


 while a < length(h) do
  begin

  a:=a+1;
  c:=upcase(h[a]);

    if c='A' then
     begin
      d:=10;
      c:=IntToStr(d);
     end;

    if c='B' then
     begin
      d:=11;
      c:=IntToStr(d);
    end;

    if c='C' then
     begin
      d:=12;
      c:=IntToStr(d);
    end;

    if c='D' then
     begin
      d:=13;
      c:=IntToStr(d);
    end;

    if c='E' then
     begin
      d:=14;
      c:=IntToStr(d);
    end;

    if c='F' then
     begin
      d:=15;
      c:=IntToStr(d);
    end;

 d:=StrToInt(c);
 b:=b*16+d;

end;
writeln(b);
writeln('');
writeln('Beenden? [y]');
readln(y);
until y='y';
end.

Geändert von Marcel2906 (19. Aug 2011 um 09:51 Uhr)
  Mit Zitat antworten Zitat