Zapis pola rekordu do pliku.

0

Witam. Mam Problem z zapisem pojedynczego pola rekordu do pliku. Chodzi o zaznaczona linijke. Wypisywanie wartosci tego pola stosujac Writeln(GlowicaFilm^.IdFilm); Działa, natomiast zapisanie jej do pliku w taki sposob juz nie. Dlaczego? Chce uniknac zapisywania do pliku wskaznikow, dlatego skupiam sie na pojedynczych polach.
Z Gory dzieki za pomoc :)

Rekord Film:

TFilm = Record
                IdFilm : Integer;
                KolejnyFilm : PFilm;
            End;

Procedura Zapisz:

Procedure ZapiszFilm(GlowaFilm : PFilm);
Var
GlowicaFilm : PFilm;
BazaFilm : File of TFilm;
Begin
    If (GlowaFilm = Nil) Then
        Exit;

    Assign(BazaFilm,'BazaFilm.dat');
    Rewrite(BazaFilm);

    GlowicaFilm:=GlowaFilm;
    Repeat
        Begin
            Write(BazaFilm,GlowicaFilm^.IdFilm);   //<---------------     
            GlowicaFilm:=GlowicaFilm^.KolejnyFilm;
        End;
    Until (GlowicaFilm = Nil);
    Close(BazaFilm);
End;
0

w jakim sensie "nie działa".
Źle zapisuje, czy nie kompiluje się?

0

Nie sprecyzowałem wybacz.
Wyrzuca niezgodnosc:

  • Error: Type mismatch*
0

Tutaj?

BazaFilm : File of TFilm;
0

Rozumiem ze nie mozna zapisywac pojedynczych pol rekordu do pliku typu rekordowego, trzeba zapisac caly rekord? Mozna jakos wyrzucic ten wskaznik zeby sie nie zapisał?

0
Patryk27 napisał(a)

Tutaj?

BazaFilm : File of TFilm;

co tutaj? Odpowiadasz gorzej niż on zadaje pytania.

Oczywiście rozwiązaniem problemu jest:

Write(BazaFilm,GlowicaFilm^);

@autor pamiętaj o wskaźniku podczas odczytu tego pliku, żebyś się nie odwołał przypadkiem do tego adresu.

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