accesviolation

0

mam taki problem ze jak otwieram drugi raz pewną formę to mi wyskakuje błąd accesviolation ! :(
daje kod ktory gdy zostanie wykomentowany to program hula nornmalnie ;( a tak to jest błąd

var
licznik : integer;
begin
for licznik := 0 to ilosc_herby do
    begin
    herb[licznik] := '';
    team[licznik] := '';
    end;

tutaj zeby nie bylo mam takie tablice

const 
ilosc_herby = 1000;
  team : array[1..ilosc_herby] of string;
  herb : array[1..ilosc_herby] of string;

no i tutaj drugi kawalek kodu

Listbox1.Clear;

licznik := 0;
if ( fileexists(ExtractFilePath(Application.ExeName)+ 'data\herby.dat')) then
    begin
    AssignFile(plik,ExtractFilePath(Application.ExeName)+ 'data\herby.dat');
    Reset(plik);
    while not eof (plik) do
          begin
          read(plik,rekord);
          {Listbox1.Items.Add(rekord.druzyna);
          team[licznik] := rekord.druzyna;
          herb[licznik] := rekord.herb;
          licznik := licznik + 1;
          end;
    CloseFile(plik);
    end
    else
    begin
    Application.MessageBox('Brak pliku z herbami ! Skorzystaj z kreatora aktualizacji !','== ! ==',MB_OK + MB_IconInformation);
    end;

proszę o pomoc ;( myslalem ze nie zamykam pliku ;( ale zamykam bo z niego korzystam tylko w tamtym miejscu programu ;(

0

tam mialo nie byc wykomentowane nic ;( nie zauwazyłem , bo w petli while nie powinno byc komentarz ;(

0

Ciekawie myślisz... Ale to dziecinny błąd:

Const 
ilosc_herby = 1000;
  team : array[1..ilosc_herby] of string; //Tutaj zaczynasz tablicę od 1
  herb : array[1..ilosc_herby] of string;
for licznik := 0 to ilosc_herby do //A tutaj zaczynasz sprawdzanie od 0
    begin
    herb[licznik] := '';
    team[licznik] := '';
    end;

Kod powinien wyglądać tak:

For Licznik := Low(Herb) To High(Herb) Do //Zaczynasz od wartości najmiejszej w taclicy Herb do największej w tablicy Herb
Begin
 Herb[licznik] := '';
 Team[licznik] := '';
End;
0

dzieki bardzo ;)) taki głupi błąd ;( no ale nie zawsze wszystko sie dostrzeżę ;)
a jeszcze mam pytanko jak posortować tablice string ;>

0

;-)
Ale jak posortować to nie wiem...

1 użytkowników online, w tym zalogowanych: 0, gości: 1