Jump to content
RAM-ÁLDÓKI.

Idegesítő hiba

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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Itt a kód! A grafikát ne nézd, kissé kezdetleges.

http://www.upload.mgcms.info/download.php?file=481cf81482570ad05056cdf0e0d3e8b1

 

Jelszó : blablabla

Share this post


Link to post
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

 

Share this post


Link to post
Share on other sites

Kösz a segítséget! Így már nekem is működik. B)

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Bejelentkezés

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×