TFileStrem

0

Witam!

Robie sobie mały programik giełdowy i potrzebuję zapisywać sesje do plików. Stworzyłem sobie taki typ

type
  TSharesBook = record
   Nazwa: String[10];
   Data: TDate ;
   Otwarcie: Currency;
   Max : Currency;
   Min : Currency;
   Zamkniecie : Currency;
end;

//Do zapisywania uzywam 

Plik_Temp.Seek(0,pozdowstawiania*SizeOf(TSharesBook));
Plik_Temp.Write(SpolkaTemp,SizeOf(TSharesBook));

Rekord zajmuje 51b. Broblem jest taki, ze jak juz zapiszę chyba 117 takich rekordów to wszystko jest ok, ale jak dopisuje nastepne to wszystko w tym pliku sie kaszani? te rekordy sie jakos przesuwaja, sa jakies dziwne rozmiary pliku?? no nie wiem o co chodzi???

Pozdrawiam!!

0

Sorki..tam w typie bylo packed record. Ale teraz przez pomylke zmienilem na record bez packed i w ogóle juz tylko pare sesji mozna zapisac a dalej sie kaszani.....jakie znaczenie ma te record i pacdked na ilosc zapisywanych danych ???????

0

nie wiem ale chyba record jest o 4 bajty wiekszy od packed record po prostu packed recor jest jakby spakowany aby mniej miejsca zawierał w pamiecie. Chyba narty ;)

0

A może tak do helpa zajrzeć?

[...]Structured types include sets, arrays, records, and files as well as class, class-reference, and interface types. [...]

By default, the values in a structured type are aligned on word or double-word boundaries for faster access. When you declare a structured type, you can include the reserved word packed to implement compressed data storage. For example,

type TNumbers = packed array[1..100] of Real;

Using packed slows data access and, in the case of a character array, affects type compatibility (for more information, see Memory management).

0

Seek(Wskaznik do pliku, numer rekordu);

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