![]() |
StrToInt Erorror vermeiden !
Hallo
die Freude hält nicht länger und schon ein neues Problem da :mrgreen: So wird den Wert s1 von ini Datei geholt
Delphi-Quellcode:
nun kommt der Code:
procedure TForm1.FormCreate(Sender: TObject);
var MyIniFile : TInifile; begin MyIniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MyIniFile.ini'); s1 := MyIniFile.ReadString('Section1','zahl1','nicht gefunden'); MyIniFile.Free; end;
Delphi-Quellcode:
Wie kann ich folgendes machen:
// wenn die ini Datei nicht da, kein Problem
// wenn die ini Datei da ist, aber kein Integer und unkonvertierbar zu Integer dann error if StrToInt(s2) - strToInt(S1) > 10 then // kommt eine Fehlermeldung Wenn der Inhalt von zahl1 kein Integer und nicht möglich in Integer zu konvertieren dann soll s1 :='0' ? Beispiel : 10000x ist z.B. ein String und kann man nicht in Integer konvertieren Ich möchte s1 auch initialisieren, wenn es nicht in Integer konvertierbar ist !!! |
Re: StrToInt Erorror vermeiden !
Zitat:
Delphi-Quellcode:
StrToIntDef(s1, 0);
|
Re: StrToInt Erorror vermeiden !
Oder
Delphi-Quellcode:
if not TryStrToInt( zahl1, s1) then s1 := 0;
|
Re: StrToInt Erorror vermeiden !
Zitat:
Delphi findet nicht zahl1! |
Re: StrToInt Erorror vermeiden !
Einfach statt StrToInt() verwenden
Zitat:
Zitat:
|
Re: StrToInt Erorror vermeiden !
Zitat:
Ich habe versucht so :
Delphi-Quellcode:
begin
if Not FileExists('MyIniFile.ini') then S4:='0'; // initialisieren if not TryStrToInt(S1) then s1 := '0'; //Not enough parameters |
Re: StrToInt Erorror vermeiden !
Mit anderen Worten: Du hast entweder Aufrufparameter zuviel oder zu wenig. Was sagt denn deine Delphi Hilfe dazu?
|
Re: StrToInt Erorror vermeiden !
Oder mein Beispiel betrachtet, dort werden auch 2 Parameter verwendet!
|
Re: StrToInt Erorror vermeiden !
Zitat:
Zitat:
Delphi-Quellcode:
var iS1 : integer;
[...] if not TryStrToInt( zahl1, iS1) then iS1 := 0; if StrToInt(s2) - iS1 > 10 then [OT] Ich weiß, es ist ungehörig, in einem Fred olötzlich ein anderes Thema oder ein zweites Problem anzuschneiden, aber mein "problem" ist es mir nicht wert, einen Fred dafür aufzumachen Auf der Suche danach, einen möglichst "komplizierte" Lösung zu finden, bin ich auf Folgendes gestoßen
Delphi-Quellcode:
Da bekomme ich allerdings, falls s1 keine Zahl darstellt, die Fehlermeldung
var s1 : string;
temp :integer; begin s1 := '10n00'; edAusgabe.Text := IntToStr(IfThen(TryStrToInt(s1, temp), StrToInt(s1), 0)); EConvertError with message ''10n00' is not a valid integer value'. Kann mir das jemand vielleicht erklären, falls es nicht zu enervierend ist? [/OT] |
Re: StrToInt Erorror vermeiden !
Da ja das StrToInt() ein Parameter ist, wird die Funktion ja auf jedenfall ausgeführt. IfThen() entscheidet ja nur welchen Parameter als Rückgabewert genommen wird.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz