Entwickler-Ecke

Dateizugriff - ini-Zugriff (oder sonstwas) lässt Programm abstürzen (winME)


recall - Mo 01.09.03 12:48
Titel: ini-Zugriff (oder sonstwas) lässt Programm abstürzen (winME)
Hallo,

Folgendes steht in meinem Quelltext:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
    if FileExists(ExtractFilePath(Application.ExeName) + '\Setup.ini'then
    begin
      S := Ini.ReadString('Serial''ID''');
    {die Eingabe umwandeln}
      S2 := SerialX(Edit1.Text) + '+';
    {Überprüfen}
      if S=S2 then
        TabSheet3.Show
      else
        MessageDlg('Die eingegebene Seriennummer war nicht korrekt. Überprüfen Sie eventuell Groß- und Kleinschreibung', mtInformation, [mbOK], 0);
    end;
Er hängt er sich auf, nur dann, wenn die Seriennummer NICHT korrekt war !

Daher ist es vielleicht auch ein Problem mit der Funktion SerialX:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
function TForm1.SerialX(S: String): String;
var
  I, N, N1, N2: Integer;
  S2: String;
begin
  S2 := '';
  if Length(S)>3 then
    For I := 1 to Length(S)-1 do
    begin
      N1 := Ord(S[I]);
      N2 := Ord(S[I+1]);
      N := Calc(I, N1, N2);    {Funktion kann nicht fehlschlagen}
      if (N2-N)>0 then
        S2 := S2 + Chr(N2-N)
      else
        S2 := S2 + Chr(N2+N);
      if (N1-N)>0 then
        S2 := S2 + Chr(N1-N)
      else
        S2 := S2 + Chr(N1+N);
    end;
  Result := S2;
end;

aber ich denke mal nicht, denn das Problem tritt NUR unter Windows ME auf, auf XP und 98 läuft es einwandfrei :?: :!:

Wer kann mir helfen ?

Viele Grüsse.

P.S.:

Delphi-Quelltext
1:
  ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + '\Setup.ini');                    


Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.


Klabautermann - Mo 01.09.03 13:19

Hallo,

Kapzel dir das ganze am besten mal mit Try Except umd lass dir die Exception ausgeben:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
TRY
  {DeinCode}
EXCEPT
  ON E : Exception DO
    ShowMessage(E.Message);
END;


vieleicht hilft die Meldung ja weiter, wenn eine kommt. Ich wurde es in beiden Funktionen Machen und am besten in der MessageBox auch noch ausgeben welche jetzt die Exception schmeißt.

Gruß
Klabautermann


recall - Mo 01.09.03 15:26

Hallo,

Danke erstmal, nur kann ich das erst in einer Woche ausprobieren, denn ich selber habe gar kein Win ME. Der Fehler wurde mir nur berichtet.
Jetzt würde ich natürlich gerne mit so viel Wissen wie möglich "in die Schlacht ziehen " ;) .

Vielleicht weiß noch wer was ?

Viele Grüsse.