Witam
Właśnie piszę program, do którego muszę używać tablicy dynamicznej (bowiem ma to być edytor do plików, gdzie liczba zmiennych wpisywanych do danej tablicy w każdym pliku jest inna). Problem jest jednak taki, że wyskakuje mi przy uruchamianiu programu błąd "Access violation...". Gdy zamienię tablice dynamiczne na zwykłe tablice z określoną długością to wszystko jest ok... I nie mam pojęcia co się dzieje [???] . Proszę pomóżcie. Poniżej kawałek programu:
var
Plik : TFileStream;
Path : String;
TextZPliku : array of String;
PointZPliku : array of integer;
PierwPointer, P : integer;
begin
Path := 'E:\test\1.psn' ;
Plik := TFileStream.Create(Path, fmShareDenyNone);
Plik.Position := 0;
Plik.Read(PierwPointer, 4); //PierwPointer wskazuje na wartość pierwszego wskaźnika, (wartość = adres gdzie jest pierwszy text)
P := round(PierwPointer/4); //bo integer jest czterobajtowy i wskaźników jest 4 razy mniej niż liczby bajtów pomiędzy początkiem pliku a pierwszym textem
SetLength(PointZPliku, P); //długość tablicy to dokładna liczba wskaźników
SetLength(TextZPliku, P); //długość tablicy to dokładna liczba textów
Plik.Position := 0;
Plik.Read(PointZPliku, 4);
Memo1.SelText := IntToStr(PointZPliku[1]); //sprawdzam wartość pierwszego wskaźnika
end;
Jak ktoś się dopatrzy to bardzo proszę o wskazanie błędu... Gdy zamienię tablice dynamiczne na zwykłe to wszystko działa, ale muszę mieć tablice dynamiczne :(