AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StrToInt Erorror vermeiden !

Ein Thema von Delphiturbo · begonnen am 6. Mai 2008 · letzter Beitrag vom 7. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
Delphiturbo
(Gast)

n/a Beiträge
 
#1

StrToInt Erorror vermeiden !

  Alt 6. Mai 2008, 23:23
Hallo
die Freude hält nicht länger und schon ein neues Problem da

So wird den Wert s1 von ini Datei geholt
Delphi-Quellcode:
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;
nun kommt der Code:
Delphi-Quellcode:
// 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
Wie kann ich folgendes machen:
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 !!!
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#2

Re: StrToInt Erorror vermeiden !

  Alt 6. Mai 2008, 23:27
Zitat von Delphiturbo:
Wie kann ich folgendes machen:
Wenn der Inhalt von zahl1 kein Integer und nicht möglich zu Integer zu konvertieren
dann soll s1 :='0' ?
StrToIntDef(s1, 0);
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: StrToInt Erorror vermeiden !

  Alt 6. Mai 2008, 23:30
Oder
if not TryStrToInt( zahl1, s1) then s1 := 0;
Markus Kinzler
  Mit Zitat antworten Zitat
Delphiturbo
(Gast)

n/a Beiträge
 
#4

Re: StrToInt Erorror vermeiden !

  Alt 6. Mai 2008, 23:42
Zitat von mkinzler:
Oder
if not TryStrToInt( zahl1, s1) then s1 := 0;
Wo gemau kann ich diese einsetzen ?
Delphi findet nicht zahl1!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: StrToInt Erorror vermeiden !

  Alt 6. Mai 2008, 23:43
Einfach statt StrToInt() verwenden
Zitat:
Delphi findet nicht zahl1!
Zitat:
Wenn der Inhalt von zahl1 kein Integer
Ging davon aus das du einen String zahl1 hast
Markus Kinzler
  Mit Zitat antworten Zitat
Delphiturbo
(Gast)

n/a Beiträge
 
#6

Re: StrToInt Erorror vermeiden !

  Alt 6. Mai 2008, 23:50
Zitat von mkinzler:
Einfach statt StrToInt() verwenden
Dort darf man nicht !!!

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
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: StrToInt Erorror vermeiden !

  Alt 6. Mai 2008, 23:53
Mit anderen Worten: Du hast entweder Aufrufparameter zuviel oder zu wenig. Was sagt denn deine Delphi Hilfe dazu?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: StrToInt Erorror vermeiden !

  Alt 6. Mai 2008, 23:55
Oder mein Beispiel betrachtet, dort werden auch 2 Parameter verwendet!
Markus Kinzler
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#9

Re: StrToInt Erorror vermeiden !

  Alt 6. Mai 2008, 23:56
Zitat von Delphiturbo:
Zitat von mkinzler:
Oder
if not TryStrToInt( zahl1, s1) then s1 := 0;
Wo gemau kann ich diese einsetzen ?
Delphi findet nicht zahl1!
In diesem Fall ist 'zahl1' die variable 's1' der String, den Du aus der Ini Datei ausliest
Zitat von Delphiturbo:
s1 := MyIniFile.ReadString('Section1','zahl1','nicht gefunden');
müsste also in etwa so heißen (mkinzler: ich vergreif' mich einfach mal an Deinem Code):
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:
var s1 : string;
    temp :integer;
begin
  s1 := '10n00';
  edAusgabe.Text := IntToStr(IfThen(TryStrToInt(s1, temp), StrToInt(s1), 0));
Da bekomme ich allerdings, falls s1 keine Zahl darstellt, die Fehlermeldung

EConvertError with message ''10n00' is not a valid integer value'.

Kann mir das jemand vielleicht erklären, falls es nicht zu enervierend ist?
[/OT]
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: StrToInt Erorror vermeiden !

  Alt 7. Mai 2008, 00:01
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz