[Delphi]Niezdefiniowany plik planszy

0

Witajcie.
Wiem, że tytuł jest zupełnie nietrafiony ale niewiem jak to ująć:

Stworzyłem program(grę), w którym z prawej strony ekranu muszą pojawiać się obiekty.
Meteory, wrogie pojazdy, bonusy itp.

Chodzi o to, że każdego opisuje zbiór wartości zebranych w rekordzie o stałym rozmiarze.
Mógłbym to zapisać w pliku zdefiniowanym, ale plik musi mieć sekcję nagłówkową, w której znajdują się dodatkowe dane (tytuł, tło, długość itp.).
Ponadto niektóre obiekty są typu "komunikat", tj.tylko string[255].
Takie komunikaty dają graczowio informacje typu:
"Przed nami duże skupisko meteorów!".
Wiadomo, że różne części pliku (nagłówek, obiekty, komunikaty) mają różne rozmiary. W jaki sposób wczytać wszystko do listy jednokierunkowej(struktura dynamiczna) i zapisać z takiej listy do pliku?

Oczywiście nagłówkanie nie ma w tej liście, są tam tylko obiekty i komunikaty.

Dziękuję za pomoc

0

Robisz plik, ktorego struktura wyglada +/- tak:

NAGLOWEK
co tam chcesz

NAGLOWEK ELEMENTU - 1B
tu zapisujesz, czy element to rekord czy komunikat

ELEMENT, powiedzmy jesli
1: rekord z obiektem
2: ShortString

Odczytujesz naglowek pliku, potem naglowek elementu (bajt), i zaleznie od tego ile on wynosi odczytujesz albo rekord albo shortstring (czy do czego tam pakujesz ten komunikat). Wlasciwie to banalne wiec nie wiem co tu mozna jeszcze tlumaczyc .

0

No tak, ale mi chodzi o to, że:

type
wsk_objekt=^objekt;
objekt=record
               blabla:jakiśtamtyp;
               następny:wsk_objekt;
               end;

var
pierwszy,w:wsk_objekt;
naglowek:record
               blabla:typnagłówka;

i nie mam pomysły jak WCZYTAĆ lub ZAPISAĆ taką strukturę do pliku.

0

W takiej sytuacji polecałbym XML, jeśli nie zależy ci na konkretnym typie pliku :)
[kurs jest w Artykułach ofkors :P]

0

Jak to jak? Nie umiesz z pliku czytac i cos dopisywac czy co? Jesli tak to poczytaj se jakis kurs czy cos, a jesli umiesz to nie wiem w czym problem.

0

Już sobie poradzę, dzięki!

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