Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi AV bei Stringvergleich (https://www.delphipraxis.net/33424-av-bei-stringvergleich.html)

Airblader 6. Nov 2004 16:42


Re: Problem mit SetLength
 
erm...sorry...wieder was banales :cry:
Ich bekomm ein AV.
Mit Showmessages hab ich das problem ganz genau ausgegrenz.
und ich muss mich sehr wundern :shock:

Delphi-Quellcode:
if not (old_p_test = '0') then
begin
Wo bitte ist da ein Fehler :shock:

das old_p_test wird so ausgelesen (das alles ist in ner for-schleife):

Delphi-Quellcode:
old_p_test := ini.ReadString('Score','Name'+IntToStr(i),'0');
ALso langsam wirds echt ... :gruebel:

Matze 6. Nov 2004 16:43

Re: Problem mit SetLength
 
Hast du die Ini-Datei mit Create erstellt?


Nachtrag: Pro Frage ein Thread, in Zukunft.

Airblader 6. Nov 2004 16:47

Re: Problem mit SetLength
 
Klar hab ich:

Delphi-Quellcode:
ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'highscore.txt');
Ja: ini ist als TIniFile definiert.
Ja: ich hab IniFiles mit eingebunden.

air
p.s. sorry, dachte nur, das wird wieder sowas kleines sein, dass sich ein extrathread nicht lohnt

Matze 6. Nov 2004 16:51

Re: Problem mit SetLength
 
Jetzt sehe ich's erst, du hast wieder mal StrToInt vergessen:

Delphi-Quellcode:
if not (old_p_test = '0') then
begin
Hmm doch nicht :wall:

Ich geh jetzt mal ins Bett :mrgreen: Sorry


Nachtrag: Zeig mal bitte deine for-Schleife.

Airblader 6. Nov 2004 16:53

Re: Problem mit SetLength
 
Daran liegts wie du festgestellt hast definitib nicht, da ich einen string lese und meine variable auch eine vom typ string ist

aber woran kann das liegen :gruebel: :wall:

Meine Schleife is ganz normal :cat:

Delphi-Quellcode:
 for i := 0 to 9 do // 0..9
        begin
                old_p_test := ini.ReadString('Score','Name'+IntToStr(i),'0');
                ShowMessage('test1');
                if not (old_p_test = '0') then
                begin
                        ShowMessage('test2');
                        old[9-i].name := Form3.XORString(old_p_test,key);
                end else
                        old[9-i].name := '-';

[..]
Die showmessages waren die tests.
die erste kommt, die anderen nichtmehr

Ultimator 6. Nov 2004 17:11

Re: Problem mit SetLength
 
Probiers mal mit
Delphi-Quellcode:
if (old_p_test<>'0') then ...
Aber eigentlich dürft's da keine AV geben... :gruebel:

Airblader 6. Nov 2004 17:39

Re: Problem mit SetLength
 
:shock:

ich hab nun

Delphi-Quellcode:
for i := 0 to 9 do // 0..9
        begin
                old_p_test := ini.ReadString('Score','Name'+IntToStr(i),'0');
                ShowMessage('s');
                if (old_p_test = '0') then
                begin
                        ShowMessage('s');
                        old[9-i].name := '-';
                        ShowMessage('s');
                end else
                        old[9-i].name := Form3.XORString(old_p_test,key);

[...]
probiert.
nun werdn die ersten zwei messages ausgegeben, das 3. nicht.
d.h. der fehler ist hier !? :shock:

Delphi-Quellcode:
old[9-i].name := '-';
old ist ein 'array of HighScore', wobei HighScore so aussieht:

Delphi-Quellcode:
type
  HighScore = record
    name: string;
    punkte: integer;
  end;
 
  TForm...

StefanDP 6. Nov 2004 19:23

Re: Problem mit SetLength
 
name ist ein reserviertes wort :warn:

Airblader 6. Nov 2004 20:33

Re: Problem mit SetLength
 
Zitat:

Zitat von StefanDP
name ist ein reserviertes wort :warn:

Danke
aber nun hab ich das:

Delphi-Quellcode:
ShowMessage('1');
if (old_p_test = '0') then
begin
         ShowMessage('2');
         old[9-i].username := '-';
         ShowMessage('3');
[...]
Das '1' bekomm ich.
Das '2' auch.
Aber vor dem '3' (wird nicht ausgegeben) kommt wieder ein AV

Ich hab nun aber

Delphi-Quellcode:
type
  HighScore = record
    username: string;
    punkte: integer;
  end;
Sowie alle old[x].name zu old[x].username geändert.

Aber username ist doch kein reserviertes wort mehr :warn:

Christian Seehase 6. Nov 2004 20:36

Re: AV bei Stringvergleich
 
Moin Airblader,

probier's mal damit:

Delphi-Quellcode:
for i := 0 to high(old) do // 0..9 
...
old[high(old)-i].username := '-';


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 Uhr.
Seite 1 von 2  1 2      

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