Pliki typowane...

Odpowiedz Nowy wątek
2004-09-06 21:28
0

Mam pytanie na które najprawdopodobniej nie będzie zadowalającej mnie odpowiedzi a mianowicie:
Mam sobie typ typu wyliczeniowego:

type TProba=record 
         Liczba:Byte; 
         Stringi:array of String 
       end; 

I teraz chcę sobie zrobić taki myk:

(...) 
var MojPlik: file of Tproba 

No i tu jest błąd bo muszę określić długość tablicy ze Stringami, i mam pytanko czy da sie jakoś to zrobić żeby było z tą tablicą dynamiczną bez określonej długości???
P.S. wiem w jakis sposó są zbudowane pliki typowane (każdemu polu jest zostawiona odpowiednia ilość miejsca). No i wiem że tego najprawdopodobniej sie nie da zrobić no bo zniby skąd kompilator ma wiedzieć jak dużo miejsce przygotawać .
Czekam na pomoc bądź jakieś inne rozwiązanie.
Pozdr


Sun Certificated Java Programmer 6

Pozostało 580 znaków

2004-09-06 21:33
0

(każdemu polu jest zostawiona odpowiednia ilość miejsca)

w sumie to (chyba) sam sobie odpowiedziales ;)


+1 post

Pozostało 580 znaków

2004-09-06 22:01
0

(każdemu polu jest zostawiona odpowiednia ilość miejsca)

w sumie to (chyba) sam sobie odpowiedziales ;)

Na siłę można wprowadzić stałą ilość miejsca, jakąś dużą :) np:

type
  TLongString = array[0..1023] of Char; // 1 kB :)

  TRekord = record
    // ...
    LongStr: array[0..1023] of TLongString; // 1 kilobajtowa tablica 1kB łańcuchów :)
  end;

Przypominam, że tablice znaków z dolnym indeksem ustawionym na zero są kompatybilne z łańcuchami (przy włączonej dyrektywie {$X+}, co jest ustawieniem domyślnym).


Mam nadzieję, że pomogłem :)

Łukasz Brodny

Pozostało 580 znaków

2004-09-06 22:05
0

Na siłę można wprowadzić stałą ilość miejsca, jakąś dużą np:

type
TLongString = array[0..1023] of Char; // 1 kB :)

TRekord = record
// ...
LongStr: array[0..1023] of TLongString; // 1 kilobajtowa tablica 1kB łańcuchów :)
end;

No tak, ale jeśli ktoś będzie chciał więcej niż 1 kb .. - najlepiej do takich machinacji nie stosować plików typowanych tylko XML...


Pozostało 580 znaków

2004-09-06 22:15
0

Na siłę można wprowadzić stałą ilość miejsca, jakąś dużą np:

type
TLongString = array[0..1023] of Char; // 1 kB :)

TRekord = record
// ...
LongStr: array[0..1023] of TLongString; // 1 kilobajtowa tablica 1kB łańcuchów :)
end;

No tak, ale jeśli ktoś będzie chciał więcej niż 1 kb .. - najlepiej do takich machinacji nie stosować plików typowanych tylko XML...

To mówi się trudno :) Jak mu się nie podoba to unistall i po kłopocie :) Możliwe, że XML lepiej się nadaje (przy okazji: dobrze że napisałeś tego arta :) ). Ale pliki typowane mają tą przewagę, że nie jest łatwo przy pomocy notepada edytować plik, co dla niektórych może być wadą, a dla innych zaletą. Nie dotyczy oczywiście łańcuchów, które są zapisywane "normalnie" w tym pliku. I nie podglądałem nigdy plików typowanych żadnym hex viewerem, więc nie wiem jak tam wygląda edycja.


Mam nadzieję, że pomogłem :)

Łukasz Brodny

Pozostało 580 znaków

2004-09-07 19:22
0

Kilka tematow dalej byla dyskusja o zapisywaniu i oczytywaniu dynamicznej tablicy do pliku (a raczej kilku dynamicznych tablic), wystarczy troche kombinowania i nie jest to az takie arcytrudne.


Pozostało 580 znaków

2004-09-07 19:25
0

Dobra dzięki wszystkim. Zrobiłem to na wychodzących z mody plikach Ini ;-)


Sun Certificated Java Programmer 6

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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