> Hmm, tys to zjevne nepochopil. File of string je proste > jen standardni typovy soubor, cili soubor zaznamu o pevne > delce, respektive delce odpovidajici pouzitemu typu. Obecne > tedy file of <type> kde type je nejaka datova struktura > (o pevne delce). Je lhostejne, jde-li o nejakou standardni > strukturu jako treba string, nebo explicitne definovany > typ. A jelikoz typ string ma v Pascalu implicitne delku > 256 bytes, je soubor tvoren prave zaznamy o delce 256 bytes, > kde byte 0 obsahuje 'vyuzitou' delku stringu a zbyle bytes > 1..255 pak obsahuji text (o delce byte 0) a evtl. zbyla > 'prazdna' mista (do delky typu string). no asi se nechapeme navzajem :) tohle vsechno vim jedina pro me dulezita vec je prave ta "pevna delka" chci zapisovat do "file of string" kde ten string by byl neco jako string[length(string)] :) vim ze je to blbost ale proto se ptam tady v konfere - zkusenejsich lidi zda neco takove nejde a pokud to opravdu nejde staci odpovedet "NEJDE TO" > > Pokud by ti vadila jen zbytecna delka implicitniho stringu, > kterou v konkretnim pripade nikdy nevyuzijes, deklaruj si > typ stringu o potrebne delce a na tomto typu pak postav ten > soubor (str64:string[64]; .... f:file of str64; ...) ano ale ja budu do toho file of string ukladat stringy "promenlive delky" - tedy jednou je to legnth(s)=5 a jindy 100 - proto ten <priklad> s jinou delkou stringu > > Jinak nevidim duvod, proc nepouzit textfile, chces-li jenom > ukladat text, respektive obsah stringu. Nic ti prece nebrani > potom k tomu souboru pristupovat jako k netypovemu, nebo > treba file of bytes (char). ja ho vidim :) F : text je ta druha moznost hned po F : file of string - jedina vyhoda toho file of string je ta ze se budou jednoduseji nacitat data z tohoto souboru (tedy i rychleji - a to pri velkem objemu dat je uz "znat") nez z toho textoveho (kde se to musi nacitat po pismenech) - no a jedina jeho nevyhoda je ta ze jeho velikost je nekolikanasobne vetsi nez toho F : text - prave o "256-length(string)" na kazdy string a prave tuhle jeho nevyhodu se snazim v tehle konferenci vyresit - ale asi bezuspesne - takze vyhraje zrejme ten F : text! [a netypovy soubor se mi jevi daleko slozitejsi nez ten textovy] > > Nemuzes-li z nejakeho duvodu pouzit textfile a ukladat do > zcela obecneho souboru vzdycky pouze onu 'vyuzitou' delku > stringu, pouzij netypovy 'binarni' soubor a data ze stringu > do nej zapisuj cyklem pres string. Budes pak ale mit potize > se ctenim takoveho souboru, pokud nebudes vkladane stringy > oddelovat napriklad crlf (cimz vzniknou radky a soubor se > bude chovat jako textfile). Taky muzes ukladat stringy > vcetne byte 0 (delka) a na cteni takoveho souboru si napises > fci, ktera bude tuto strukturu predpokladat a bude moci > cist jednotlive stringy budto ciste sekvencne, nebo 'jakoby' > primym pristupem k n-temu stringu. Jakoby, protoze interne > se bude zase muset k n-temu stringu prokousat sekvencne > podle delek, pocinaje byte 0. [moc slozite] > > Taky existuje moznost pouzit (tusim od verze TP 7) strukturu > stringu tzv. zero-terminated strings, podobne jako je tomu > treba v C. Jejich support je mozno nastavit v compileru, ale > blizsi podrobnosti RTFM :), protoze jsem to v dobach Pascalu > nepouzival a nevim, jak je to v TP implementovane. > hura! - ze by konecne neco :) zkusim se po tom pokouknout! > pako Paco. jinak diky za reakce - kdybych nenasel "zero-terminated strings" tak nezbyva moznost F : text! diky martin
This archive was generated by hypermail 2.1.2 : 10. 08. 2002, 14:51 CEST