Fehler: " ist kein gültiger Integerwert
-
Hallo,
habe folgendes Problem:
Wenn ohne Laufzeit-Packages Compiliere kommt folgender Fehler wenn ich die *.exe vom Explorer aus ausführe:
" ist kein gültiger IntegerwertWeiß jemand wieso der Fehler kommt, oder besser noch wie ich den Fehler wegbekomme?
Vielen Dank
dr.sam
-
und wo im code passiert das? debugger benutzen
und lass mich raten, du liesst ein einem TEdit oder ähnliches eine zahl ein und wandelst es mit StrToInt() um?
mfg
BigNeal
-
Hier ist mein Code:
Es handelt sich um eine Geburtstagsfunktion, die aus einer Datei (keine Datenbank), in der Personen mit Name, Straße Ort usw. und auch dem Geuburtsdatum stehen, die Personen die Geburtstag haben heraussucht, das Alter errechnet (dazu brauche ich StrToInt) und in ListBox2 ausgibt.
void __fastcall TForm1::FormPaint(TObject *Sender) { tDaten Inhalt; TAdressen funktions; // Klassen deklarieren char *Speicherfile = funktions.GetSpeicherAdresse(); // Speicheradresse ermitteln Date->Caption=DateToStr(Datumfunktionen.CurrentDate()); // Heutiges Datum ermitteln FILE *fs; bool Ergebnis_Geb=false; int i, Alter=0; char buff[50]; AnsiString DatumSys; AnsiString GebDatumPerson; AnsiString JahrSys; AnsiString JahrPers; char ListFile[100]; ListBox2->Clear(); fs=fopen(Speicherfile,"r+b"); fread(ListFile,99,1,fs); fclose(fs); fs=fopen(ListFile,"r+b"); fseek(fs,0,SEEK_END); int x=ftell(fs)/sizeof(tDaten); if (x>0 && fs != NULL) // Im Speicher steht min. 1 Datensatz { fseek(fs,0,SEEK_SET); for (i=1; i<=x; ++i) { fread(&Inhalt,sizeof(tDaten),1,fs); DatumSys=Date->Caption; GebDatumPerson=Inhalt.Geburtsdatum; JahrPers=GebDatumPerson.SubString(7,4); // Jahr in extra Variable schreiben JahrSys= DatumSys.SubString(7,4); // Jahr in extra Variable schreiben GebDatumPerson.SetLength(6); // Jahr ausschneiden DatumSys.SetLength(6); // Jahr ausschneiden if (GebDatumPerson.AnsiCompare(DatumSys)==0) // Vergleichen ob Tag und Monat gleich sind { Alter= (StrToInt(JahrSys))- (StrToInt(JahrPers) ); sprintf(buff,"%-15s %-15s %-11s %i",Inhalt.Nachname,Inhalt.Vorname,Inhalt.Geburtsdatum,Alter); ListBox2->Items->Add(buff); Ergebnis_Geb=true; } // end if (GebDatumPerson.AnsiCompare(DatumSys)==0) } // end for } // end if (x>0) fclose(fs); if (Ergebnis_Geb == false) Application->Terminate(); else Form1->Visible= true; }
-
lass mich raten, im StrToInt passiert die Fehlermedlung?
mfg
BigNeal
-
Ich vermute es, kann es aber nicht mit Sicherheit sagen, da der Fehler nur beim Ausführen der *.exe auftretet.
Im C++Builder tretet der Fehler nicht auf!Gibt es eine Lösung wenn der Fehler bei StrToInt auftretet?
-
dr.sam schrieb:
Ich vermute es, kann es aber nicht mit Sicherheit sagen,
benutz den debugger
dr.sam schrieb:
Gibt es eine Lösung wenn der Fehler bei StrToInt auftretet?
StrToIntDef()
mfg
BigNeal
-
Warum existiert kein StrToFloatDef() ?
-
Git es doch
extern PACKAGE Extended __fastcall StrToFloatDef(const AnsiString S; const Extended Default);
-
Ab Version 6? Bei meinem 5er hier gibts das nicht.
-
Kann ich nicht sagen, die 5er hatte ich nie, die Vorgänger deinstalliert. Habe jedenfalls die 6er. Scheint dann aber wohl so zu sein, dass erst ab 6er
-
Hallo
StrToFloatDef() gibts im BCB5 noch nicht, nur StrToIntDef() oder StrToFloat().
bis bald
akari