Thema: Delphi StrToInt funzt nicht!

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

Re: StrToInt funzt nicht!

  Alt 21. Mär 2005, 11:16
PS: Es geht auch ohne den String ^^
Dann kann es ja auch wie schon bemerkt Probleme mit dem [1] geben, wenn du aber damit die Eingabe beschrenken willst, dann doch lieber mit 'ner Abfrage.
Delphi-Quellcode:
var
  x: Integer;

begin
  if ParamCount = 1 then
    x := StrToInt(ParamStr(1))
  else
    x := 1;
Delphi-Quellcode:
var
  x: Integer;

begin
  if ParamCount = 1 then begin
    x := StrToInt(ParamStr(1))
    if (x < 1) or (x > 3) then x := 1; // oder halt 'ne Fehlermeldung...
  end else
    x := 1;
Wenn du nicht willst, dass dein Programm abstürtzt, wenn mal keine Zahl eingegeben wurde, dann mußt du halt mit StrToIntDef, oder Try/Except arbeiten.
Code:
var
  x: Integer;

begin
  if ParamCount = 1 then begin
    x := StrToInt[color=#ff0000]Def[/color](ParamStr(1)[color=#ff0000], 1[/color])
    if (x < 1) or (x > 3) then x := 1; // oder halt 'ne Fehlermeldung...
  end else
    x := 1;
Code:
var
  Anlage: String;
  x: Integer;

begin
  if ParamCount = 1 then begin
    Anlage := ParamStr(1);
  end else begin
    Anlage := '1';
  end;
  x := StrToInt[color=#ff0000]Def[/color](Anlage[color=#ff0000], 1[/color]);
  if (x < 1) or (x > 3) then x := 1; // oder halt 'ne Fehlermeldung...
wobei du bei Try/Except selber auch mitbekommst, ob ein "Fehler" aufgetreten ist:
Code:
var
  Anlage: String;
  x: Integer;

begin
  if ParamCount = 1 then begin
    Anlage := ParamStr(1);
  end else begin
    Anlage := '1';
  end;
  [color=#ff0000]try[/color]
    x := StrToInt(Anlage);
    if (x < 1) or (x > 3) then x := 1; // oder halt 'ne Fehlermeldung...
  [color=#ff0000]except
    // Wenn du willts, dann kann hier auch 'ne eigenen Fehlerbehandlung rein,
    // z.B. eine Meldung an den UIser, dass er/sie einen "falschen" Parameter angegeben hat.
    x := 1;
  end;[/color]
$2B or not $2B
  Mit Zitat antworten Zitat