Du solltest den Code ein wenig auftrennen, dann wird alles auch nicht so wuselig.
Hier mal eine Vorlage, wo du die Prüfung und Wandlung noch ausformulieren musst:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
procedure Eingabe(
var EingabeText :
string );
begin
if EingabeText <> '
'
then
begin
Writeln( '
Fehler: ' + EingabeText + '
ist keine Hexadezimalzahl!' );
Writeln;
end;
Writeln( '
Bitte Hexadezimalzahl eingeben:' );
ReadLn( EingabeText );
end;
function IstHexZahl(
const EingabeText :
string ) : Boolean;
begin
// Hier muss noch der Code für die Prüfung rein
Result := True;
end;
function HexZahlNachInteger(
const HexZahl :
string ) : Integer;
begin
// Hier muss noch der Code für die Umwandlung rein
Result := 0;
end;
procedure Ausgabe(
const HexZahl :
string; Zahl : Integer );
begin
Writeln( '
Hex ' + HexZahl + '
ist dezimal ' + IntToStr( Zahl ) );
end;
var
EingabeText :
string;
Zahl : Integer;
begin
try
EingabeText := '
';
// Eingabe
repeat
Eingabe( EingabeText );
until IstHexZahl( EingabeText )
or ( EingabeText = '
' );
if EingabeText <> '
'
then
begin
// Verarbeitung
Zahl := HexZahlNachInteger( EingabeText );
// Ausgabe
Ausgabe( EingabeText, Zahl );
end;
except
on E :
Exception do
Writeln( E.ClassName, '
: ', E.
Message );
end;
end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)