ďťż

Ładny brzuch

Ostatnio wpadłem na pomysł żeby napisać program przechowujący kody (cheaty, tipsy, podpowiedzi) do gier. W skład programu wchodzą: TListbox, TMemo, kilka buttonów do edycji. Zastanawiam się jaką metodę zapisu wybrać. Opisy lądujące w memo mogą być większe niż 255 znaków, z tytułami raczej takiego problemu nie będzie. Chciałbym też żeby wszystko było zapisywane do jednego pliku, a plik nie był zawalony pustymi liniami, spacjami między kolejnymi wpisami.

Co jest lepsze do tego celu? Tablica dynamiczna, tablica dynamiczna z rekordami, same rekordy, cvs, ini, xml. Powiedzcie!

Mile widziane, jakieś linki do przykładów:)
Użytkownik DJ_Scooby edytował ten post 03 sierpień 2006, 17:37


Type TGra=packed record Nazwa:ShortString; IloscKodow,DlugoscOpisu:Integer; end;Następnie: Wczytujesz rekord, następnie wczytujesz kody (na każdego dajmy ShortString) a potem wczytujesz opis gry. ;)

Tylko, czy te rekordy będą mogły pomieścić więcej niż 255 znaków?
Użytkownik DJ_Scooby edytował ten post 03 sierpień 2006, 17:39
faq
podsumowując: użyj AnsiString.

A jak chcesz się bawić, postaw sobie bazę danych :P
Aha przy zapisie do pliku możesz bawić się INI czy XMLem :)
Użytkownik DJ_ProG edytował ten post 03 sierpień 2006, 17:55



faq
podsumowując: użyj AnsiString.

String domyślnie jest AnsiStringiem. Jednak plik oparty na rekordzie nie zmieści stringa większego niż 255 znaków (słowo kluczowe packed - bez niego nie zbudujemy pliku z koleji). Dlatego pliki typowane zostały wycofane z użytku od Delphi > 7.

Zdecydownie najlepszym sposboem wydaje się XML, jednak będzie to wymagac odrobiny pracy. Co więcej XML idealnie nada się do Twojego programu, ponieważ możesz łatwo stworzyć drzewko w komponencie TreeView - zamiast tego listoboxa, które zawierałoby tytuł gry a po rozwinięciu kolejne pozycje - kody, wskazówki etc. A ich wartosc byłaby w memo. Rozwiązałoby to również dotychczasowe problemy z odczytywaniem z tablicy, o których pisałeś wcześniej. KLIK
Użytkownik p1101 edytował ten post 03 sierpień 2006, 19:37

Tylko, czy te rekordy będą mogły pomieścić więcej niż 255 znaków?
Shortstringi nie beda mogly pomiescic ponad 255 :) lepiej uzyc normalnego stringa i zapisywac "recznie", np. w formie
[dlugosc(4bajty)][tresc]
w tym przypadku limit to 65535 znakow, przy odczycie wczytujesz najpierw rozmiar (dlugosc), a potem, znajac juz rozmiar (dlugosc), reszte
...
lub jako #0-terminated string :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •