TurboPascal zapis/odczyt zmiennych


(Msq Igi) #1

Witam,

Chodzi mi o zapis i odczyt zmiennych do pliku. Mam dość skomplikowany program, który chciałbym wzbogacić o funkcję zapisywania i odczytywania tych danych, gdyż tak za każdym razem trzeba uzupełniać mnóstwo danych. Są użyte 3 tablice i rekord (no i jakieś inne zmienne). I pierwsze pytanie moje to czy jest jakaś możliwość by zapisać te zmienne / dane tablic / rekordów do pliku by potem zrobić menu co by je odczytywało i pominąć to czasochłonne wprowadzanie. A kolejne pytanie to czy da się to wszystko zrobić w jednym pliku by odczytywało dane zmiennych z konkretnych liń czy po prostu odczytać to odwrotnie niż zapisało czy jak?

Początek programu:

program przetwarzanie;

uses crt;


type osoba=record

 imie:string;

 nazwisko:string;

 data_ur:string;

 pesel:string[11];

 uspr:integer;

 nieuspr:integer;

 adres:string;

 mscur:string;

 zachowanie:string;

 uwagi:string;

 ocena:array[1..100] of integer;

end;



  Procedure WriteLnXY(x,y:Integer;z:String);

   begin

    GoToXY(x,y);

    WriteLn(z);

   end;



var wybor,wybor2,j,c,wybor3,s,sr,liczbaprzedmiotow,liczbauczniow:integer;

    numerwdzienniku,lista,k:byte;

    x:char;

    uczen:array[1..100] of osoba;

    przedmiot:array[1..100] of string;

    uczen1:array[1..100] of integer;

Dzięki za wszelką pomoc.


([alex]) #2

Najprostszy jest odczyt binarny, ponieważ nie trzeba kontrolować czy użyszkodnik coś w pliku nie popsuł.

Więc zapis też musi być binarny.

Najpierw zapisujesz liczbę uczniów, a potem dla każdego ucznia po kole zapisujesz dane.

Liczby zapisujesz jak lecą, zaś dla napisów najpierw zapisujesz długość potem sam napis.

Potem następną tablicę tak samo.

Odczyt dokładnie tak samo.

Odczytujesz ilość rekordów, potem w pętle dla każdego ucznia odczytujesz dane.

Liczby - jak lecą, zaś dla napisów najpierw wczytujesz długość, ustawiasz długość napisu, wczytujesz sam napis.

Potem następną tablicę tak samo.


(Msq Igi) #3

No tylko jak dla mnie to trochę zbyt skomplikowana procedura i zbyt skomplikowane wytłumaczenie, może o jakieś zastosowane albo gotowe fragmentu programu można by prosić :>


(inż. Piniol) #4

http://turbopascal.helion.pl/r-18.htm

http://4programmers.net/Turbo_Pascal/Pl ... bo_Pascalu

http://www.elektroda.pl/rtvforum/topic980519.html


(Msq Igi) #5

Dzięki, popatrzę jeszcze nad tym, może coś mogę uprościć.