Autor Téma: Invalid pointer (assignfile)  (Přečteno 161 krát)

Offline vangog

  • Hrdina
  • ****
  • Příspěvků: 262
  • Karma: 0
    • Verze Delphi: 7
Invalid pointer (assignfile)
« kdy: 12-10-2018, 21:45:48 »
Chápete proč se mi po provedení příkazu assign nezobrazí žádná hodnota v kukátku pro proměnnou f? Viz obrázek.

Kód: Delphi [Vybrat]
  1. procedure TForm1.ulozit;
  2. var f:textfile;
  3.     uspesnost,uspesnost0,typTestu,
  4.     nevedel,zapis,jmtestu0,pocetot,pocetot0,datum,
  5.         datum0,jmenouziv0,chyb0,punkt:string;
  6.     i:integer;
  7. begin
  8.   if ((cisot/pocet<0.4)  and (cisot<10)) then
  9.     exit;
  10.   assignfile(f,dir+'kdykdots.txt');
  11.   if pocet-nevi=0 then
  12.     uspesnost:='0%'
  13.   else
  14.     uspesnost:=inttostr(round(100*spravne/(pocet-nevi)))+'%';
  15.   uspesnost0:='    ';
  16.   for i:=0 to length(uspesnost)-1 do
  17.     uspesnost0[4-i]:=uspesnost[length(uspesnost)-i];
  18.   {if resumeTest then preruseno:='  Přerušeno'
  19.    else  preruseno:='';   }
  20.   typTestu:='   ';
  21.   if selectFromAllAnswers1.checked then typTestu:='VŠE';
  22.   if Muceni1.checked then typTestu:='MUČ';
  23.   if N10odpovedi1.checked then typTestu:='10 ';
  24.   punkt:=' ';
  25.   if punktace.checked then
  26.      if (fontOtazky = 'Hebrew') or (fontOdpovedi = 'Hebrew') then
  27.          punkt := '.';
  28.   if nevi>0 then nevedel:='+' else nevedel:='-';
  29.   jmtestu0:='            ';
  30.   for i:=1 to length(jmtestu) do
  31.          jmtestu0[i]:=jmtestu[i];
  32.   pocetot:=inttostr(cisot-nevi);
  33.   pocetot0:='    ';
  34.   for i:=0 to length ( pocetot)-1 do
  35.     pocetot0[4-i]:=pocetot[length ( pocetot)-i];
  36.   datum:=datetostr(date);
  37.   datum0:='          ';
  38.   for i:=0 to length(datum)-1 do
  39.    datum0[10-i]:=datum[length(datum)-i];
  40.   if length( jmenouziv)<8 then
  41.      begin
  42.        jmenouziv0:='        ';
  43.        for i:=1 to length( jmenouziv) do
  44.          jmenouziv0[i]:= jmenouziv[i] ;
  45.      end
  46.   else
  47.     jmenouziv0:=jmenouziv;
  48.   str(chyby:3,chyb0);chyb0:=chyb0+'chyb ';
  49.   zapis := datum0 + ' ' + typTestu + ' '+ punkt + pocetot0  + nevedel + ' ' + jmtestu0 +' '+ uspesnost0 + chyb0 + jmenouziv0;
  50.   if fileexists(dir+'kdykdots.txt')then
  51.     begin
  52.       append(f);
  53.       writeln(f,zapis);
  54.     end
  55.   else
  56.     begin
  57.       rewrite (f);
  58.       writeln(f,zapis );
  59.    end;
  60.   closefile(f);
  61.   ulozeno:=true;
  62. end;
  63.  

Snažím se přijít proč během ukončování procedury nastane chyba (Neplatný pointer nebo tak nějak to bylo).

Offline vangog

  • Hrdina
  • ****
  • Příspěvků: 262
  • Karma: 0
    • Verze Delphi: 7
Re:Invalid pointer (assignfile)
« Odpověď #1 kdy: 13-10-2018, 09:04:08 »
Už jsem to vyřešil:

http://www.delphipages.com/forum/showthread.php?t=105688

Je třeba tam dát reset(f);
« Poslední změna: 13-10-2018, 09:09:40 od vangog »

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: