...
x.f95:7.53:
open(1,file='tab4.dat', status='old',form='binary')
Error: FORM specifier in OPEN statement at (1) has invalid value 'binary'
V tom pripade bych pouzil form='unformated'.
Tusim, ze ten binarni soubor byl vyroben pomoci Fortranu 77, a ze F95 nema zpetnou kompatibilitu.
Zpetna kompatibilita sice neni zarucena, ale v praxi ji vsechny prekladace peclive dodrzuiji.
Mnohem horsi pripad je, ze binarni reprezentace je implementacne zavisla a je mozne, ze binarni soubor
me nejakou zajimavou strukturu, jinou nez predpoklada gfortran. Cili pokud to bylo ukladane necim kompatibilnim
(gcc, gfortran, g77,..), je to skoro urcite citelne, tak jak jsem psal.
Puvodne jsem zkousel datovy soubor nacist pomoci R, ale jelikoz nevim, jak se soubor strukturovany, tak jsem chtel radeji pouzit puvodni kod. Myslim, ze by mel obsahovat 3 sloupce s predpocitanymi hodnotami, pricemz to by mely byt asi "integer".
> to.read = file("c:/tmp/tab4.dat", "rb")
> readBin(to.read, integer(), n = 10, endian = "big")
[1] 1 1 1 16777218 257 65537 65537 16777218
[9] 257 257
>
Melo by jit o tabulku 4-1 x 5**4-1 = 3 x 625-1 cisel. integer*1 znaci 1-byte integer (v C je to signed char s rozsahem -128 .. 127).
Zalezi na implementatci, ale bezne jsou dva zpusoby ulozeni:
* postupne za sebou, byte po byte s tim, ze nejrychleji se meni prvni index (tohle dela gcc)
* po nasobich 4-byte kvuli rychlejsimu cteni - pak by to ulozeni ovsem nebylo moc effektivni z hlediska velikosti.
Tohle se musi vyzkouset. Samozrejme, ted kdyz uz znas strukturu, je vzdycky mozne to udelat v C (nebo mozna i R).
[/quote]