Jump to content
PirateClub.hu

Idegesítő hiba


RAM-ÁLDÓKI.
 Share

Recommended Posts

Delphi 7 rendszerben csinálok egy büntető rúgásos játékot, és amikor a kódhoz hozzáírtam a mentésfájlt (ami egy .txt file) kezelő eljárásokat a program az alábbi képen látható hibaüzenetet küldi. Már korábban is volt hasonló hiba, amikor a pályát tartalmazó képfájlt töltöttem be, de akkor a projekthez tartozó package1-be beraktam a vcljpg-t és megoldódott a probléma. Úgy gyanítom, hogy itt is hasonló a gond. Ha tudtok segítsetek!

 

 

 

 

post-1206949-1244538354_thumb.jpg

Link to comment
Share on other sites

Hi, ha nem látunk kódot nme tudjuk mi a hiba :)

 

var f:textfile;
begin
    if (fileexists('goal.txt')) then Begin
       assignfile(f,'goal.txt');
       reset(f);
               //read file
       closefile(f);
    End;
end;

 

http://delphi.about.com/od/fileio/a/ascii_textfile.htm

Link to comment
Share on other sites

:)

2 dolog amire azért illik odafigyelni:

 

1.) Amíg egy form create eseménye nem zajlik le, ne bántsuk a nem létező controljait:

a form1 create- ben meghívod a még nem is létező form2 colorbox controlt, erre nálam rögtön kiakad (d2007), nálad nem tudom hogyan nem, én a helyedbe ezeket már az OnShow eseménybe tenném ahol is már a formok léteznek

Egyébként a fájlt tökéletesen megnyitja, a hiba nem ott van hanem, ahol színt szeretnél adni a colorbox-nak.(az előző okból kifolyólag)

 

2.) Feleslegesen ne bonyolítsuk a saját életünket

case save.lszin of

 

Link to comment
Share on other sites

Én a helyedben nem is így dolgoznám fel az adatokat. Sokkal egyszerűbb dolgod lenne ha nem fájlkezeléssel szenvednél :)

Egy példa:

 

Ez menne a form close (vagy bezárás) eseménybe:

var  data: Tstringlist; //uses classes
begin
    data := Tstringlist.Create;
    data.Append('érték vagy változó'); {adat hozzáadása}
    data.Append('érték vagy változó'); {adat hozzáadása}
    //...
    data.SaveToFile('fájlnév');  {fájlba mentés}
end;

Ez pedig az OnShow eseménybe:

var  data: Tstringlist; //uses classes
     i:integer;
begin
  if fileexists('fájlnév') then Begin
    data := Tstringlist.Create;
    try
       data.LoadFromFile('fájlnév');
       for i := 0 to data.Count - 1 do Begin
           {adatok olvasásasoronként}
            //valami := data.Strings[i];
            //valami := data.strings[i];
       End; // end for
    except
       showmessage('Hiba betöltéskor, program újraindul');
       {régi fájl törlése mert valószínű belepiszkált a user}
       {készítünk egy program defaults eljárást amit meghívunk ha a fájl nem létezik vagy hiba történik}
    end //end try
  End  //end if
  else Begin
     {készítünk egy program defaults eljárást amit meghívunk ha a fájl nem létezik vagy hiba történik}
  End; //end else

end;

 

és máris egyszerűbb a dolgunk, nem nyitottunk meg fájlt amit le kell zárni meg végig kell olvasni.

 

Csinálhatod úgy is hogy a data globális és akkor ha módosítanak a programban akkor rögtön ott módosítod és így a formclose-ban csak a savetofile parancsot kell kiadni.

 

csoki

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Hozzászólás a témához...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Jelenleg olvassa   0 members

    • No registered users viewing this page.
×
×
  • Create New...