Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Functii pentru pozitionare

c



+ Font mai mare | - Font mai mic



Functii pentru pozitionare

a) Functia fseek()

Determina pozitionarea fisierului la citire sau scriere, incepand cu pozitia selectata. Forma functiei:



int fseek(FILE *fp, long offset, int origin)

unde 'fp' este un pointer-fisier returnat prin apelul functiei fopen(), 'offset' este deplasamentul (numar octeti) noii pozitii fata de 'origin', iar 'origin' este una din urmatoarele macrodefinitii:

SEEK_SET - inceput de fisier;

SEEK_CUR - pozitie curenta;

SEEK_END - sfarsit de fisier.

Functia returneaza 0 daca se executa cu succes si o valoare nenula in caz de eroare.

Daca nu s-a efectuat nici o operatie de I/O de la deschiderea fisierului in mod APPEND (adaugare), atunci pointerul indica inceputul fisierului.

Nu se recomanda utilizarea functiei fseek() pentru fisiere text; se sugereaza utilizarea acesteia numai pentru fisiere binare. Translatiile CR-LF efectuate in mod text pot cauza functionarea defectoasa a functiei fseek. Functia fopen si toate celelalte functii vor cauta sa inlature caracterul CTRL/Z terminator de fisier (EOF).

Singurele operatii garantate sa functioneze corect cand se utilizeaza fseek asupra fisierelor deschise in mod text este pozitionarea cu offset 0 relativa la orice pozitie din fisier si pozitionarea fata de inceputul fisierului cu un offset returnat de functia ftell().

Functia ftell() este definita astfel:

long ftell( FILE *stream );

Functia returneaza valoarea curenta a pointerului fisier. Pozitia este exprimata prin offsetul fata de inceputul fiierului.

In cazul fisierelor deschise in mod text, acest offset nu reflecta intotdeauna exact numarul de octeti datorita translatiei CR-LF. Este preferata folosirea simultana a functiilor fseek si ftell pentru a opera asupra fisierelor text, dar se recomanda folosirea lor in special asupra fisierelor binare.

Exemplu: Pentru a citi cel de-al 235 byte din fisierul numit 'test' se poate folosi urmatorul program:

func1() /* se declara functia func1() */

fseek(fp, 235L, 0);

return getc(fp);} /* se citeste un caracter de la pozitia 235 */

Observatie: L modifica constanta 235 la tipul long int.

Exemplu:

/* Acest program deschide fisierul FSEEK.OUT si muta pointerul in diverse locuri din fisier */

#include <stdio.h>

void main( void )

fclose( stream );}}

In urma executie programului se obtine:

Pointerul fisier este plasat la mijlocul primei linii.

Acesta este fisierul 'fseek.out'.

Press any key to continue



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 915
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved