online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

Online dokumentumok - kep
  
felso sarok kategória jobb felso sarok
 

Biológia állatok Fizikai Földrajz Kémia Matematika Növénytan Számítógépes
Filozófia
Gazdaság
Gyógyszer
Irodalom
Menedzsment
Receptek
Vegyes

 
bal also sarok   jobb also sarok
felso sarok   jobb felso sarok
 




































 
bal also sarok   jobb also sarok

Fajlkezelés a C programnyelvben: A szabvanyos fajlkezelés alapjai. A magas szintű fajlkezelés.

számítógépes





felso sarok

egyéb tételek

jobb felso sarok
 
Halózat hardver eszközei
A rendszer karbantartasa
A UNIX és a LINUX operaciós rendszer
Szamítógép generaciók
A MagicDVDRipper kezelése
A C program szerkezete, típusai, konstansok
A CRT unit fontosabb beépített konstansai, eljarasai, függvényei, hasznalata
Összetett adattípusok (adatabrazolas, értéktartomany, konstansok, mûveletek, fontosabb függvények, eljarasok)
Adatbazis-típusok
Képekkel kapcsolatos szóhasznalat
 
bal also sarok   jobb also sarok

Fájlkezelés a C programnyelvben: A szabványos fájlkezelés alapjai. A magas szintű fájlkezelés.


A C- ben egy file-t egy olyan pointerrel tudunk azonosítani ami egy FILE típusú struktúrára mutat. A FILE egy struktúra típusnév definíció, mely struktúra tartalmazza az aktuális file-lal kap­csolatos informá­ció­kat (pld. azt, hogy a file írás vagy olvasás alatt áll). Az <stdio.h>-ban talál­ható az _iobuf struktúra deklarálása, és utána a "typedef struct   _iobuf FILE ;" típusnév definí­ció.

Szabványos be és kimenet átirányítása

Alapesetben egy C program a klaviatúrát használja bemenetként, és a képernyôt hasz­nálja kimenetként. Abban az esetben, ha a programot a következôképpen indítjuk :
rendez < adatok.txt
akkor a rendez nevű program nem a klaviatúráról, hanem az adatok.txt állo­mány­ból ol­vas­sa az adatokat. Abban az esetben, ha az alábbi módon indí 242j97c tjuk :
rendez > r_adatok.txt



akkor nem a képernyôre írja ki a rendezett adatokat, hanem az r_adatok.txt állo­mány­ba.

File deklaráció

A file deklarációja az úgynevezett állománymutató segítségével történik, ami a már említett FILE típusú struktúrára mutat :

FILE < állománymutató >;
Példa file definícióra : FILE *fp;
Ezekután az fp pointerrel hivatkozhatunk a file-ra, a használat során.

File megnyitása

A file megnyitása az fopen() függvénnyel történik, ami egy FILE * típusú poin­tert ad vissza. Az fopen() függvénynek két char * típusú bemenô paramétere van. Az elsô a megnyitandó állomány neve, a második a megnyitás módja :


<állománymutató> = fopen( <filenév> , <mód >);

Alapesetben háromféle megnyitási módról beszélhetünk :
1. Megnyitás olvasásra : "r" File pointer az állomány elejére áll.
2. Megnyitás írásra : "w" File pointer az állomány elejére áll.
3. Megnyitás hozzáfűzésre : "a" File pointer az állomány végére áll.

Az "r" mód alkalmazása esetén a file-nak természetesen léteznie kell ! A "w" mód alapesetben egy új file-t kreál írásra. Ha a "w" módot egy már meglévô file esetén al­kal­mazzuk, akkor számolnunk kell az­zal, hogy a file tartalma felülíródik ! A hozzáfűzésre való megnyitás ( "a" ) esetén a file írható, - a file végétôl. Ebben az esetben a meglévô file tartalma nem íródik felül ! Ha a file nem léte­zik, akkor a "w" módhoz hasonlóan egy új file jön létre - írásra.

Az alapesetet a + (plusz) karakterrel tudjuk módosítani, ha a feladat úgy kívánja !A + karaktert az aktuális mód karakteréhez egyszerűen hozzá kell fűzni, így az alap megnyitási módok a következôképp módosulnak :Az "r+" mód csakis egy létezô file-ra vonatkozik. A file-t olvasásra és írásra nyitja meg ( update ). A "w+" mód egy üres file-t nyit meg irásra és olvasásra. A file-nak tehát nem kell léteznie ! Létezô file esetén a file tartalma felülíródik ! Az "a+" mód olvasásra és hozzáfűzésre nyitja meg a file-t. Ha a file még nem létezik, akkor új file-t nyit meg. Minden írási művelet a file végén történik, így egy meglévô file tartalma nem íródik felül !

Ha ASCII állományról van szó akkor a "t", ha bináris állományról akkor a "b" üzemmódot használ­juk, az ennek megfelelô karaktert hozzá kell fűzni az elôbb ismertetett karakterek valamelyikéhez. Az alapértelmezés a text üzemmód !

Példa file megnyitásra :
fp = fopen("adatok.txt","rt"); // Az adatok.txt file megnyitása olvasásra, text üzemmódban.

A gyakorlatban természetesen a file megnyitással együtt hiba vizsgálatot is vég­zünk, hiszen az fopen() függvény NULL pointert ad vissza, ha a megnyitás vala­milyen oknál fogva nem sikerült ! (Például nem létezô file-t akartunk megnyitni)

File írása

Ha "w" módban nyitottunk meg egy file-t, akkor az írás mindig a file elejétôl történik, így a file-ban lévô adatok felülíródnak !

Egy karakter kiírása : int fputc( int c, FILE *f )
ahol :
c : a kiirandó karakter,
f : a file struktúrára mutató pointer

Az fputc() normál esetben a kiírt karaktert adja vissza, hiba esetén pedig
az EOF-ot.

Formátumozott változólista kiírása : int fprintf( FILE *f ,char *fs , <args> )
ahol :
f : a file struktúrára mutató pointer
fs : a formátum vezérlô string
<args> : változó(lista)
Az fprintf() a kiírt karakterek számát adja vissza. Látható, hogy az fprintf() használata teljesen megegyezik a printf() függvényével, a FILE típusú pointertôl eltekintve.

File olvasása

Egy karakter beolvasása : int fgetc( FILE *f )
ahol :
f : a file struktúrára mutató pointer

Az fgetc() normál esetben a beolvasott karaktert adja vissza, hiba esetén pedig az EOF-ot. A file pointert automatikusan a következô beolvasandó karakterre állítja.

Formátumozott változólista beolvasása :   int fscanf( FILE *f , char fs,<args>)
ahol :
f: a file struktúrára mutató pointer
fs : a formátum vezérlô string
<args> : változócím(lista)
Az fscanf() a beolvasott karakterek számát adja vissza. Látható, hogy az fscanf() használata teljesen megegyezik a scanf() függvényével, a FILE típusú pointertôl eltekintve.

File lezárása

int fclose(f) ; ahol f egy FILE típusú pointer.
Az fclose() függvény 0-át ad vissza akkor, ha a file lezárása sikeresen megtörtént. Ellenkezô esetben EOF-ot ad vissza a függvény.

/* Adatok irása il. olvasása file használattal */



/* fprintf(), fscanf() */
#include <stdio.h>
#define SIZE 5
struct szemely
;

void main()

psz = &szm[0] ;

// A struktúra feltöltése adatokkal
sz_load( psz );

// File megnyitás írásra
if( (fp=fopen("szemely.dat","wt")) == NULL )

// Kiiratás file - ba
for(i=0; i<SIZE; i++)

// Az írásra megnyitott file lezárása
fclose(fp);


// File megnyitás olvasásra
if( (fp=fopen("szemely.dat","rt")) == NULL )

// Beolvasás file - ból

for(i=0; i<SIZE; i++)

// Az olvasásra megnyitott file lezárása

fclose(fp);
}

void sz_load( struct szemely *p_sz )

}

File elejére történô pozicionálás

void rewind( FILE *f );
ahol :
f : A file struktúrára mutató pointer.

A függvény hatására a file pointer a file elejére fog mutatni, és bármilyen író,
vagy olva­só mű­ve­let a file elejétôl lesz érvényes. Csak "a+" olvasás+hozzáfűzés
üzemmódban ha­tásos !

Adategység formátum nélküli kiiratása file-ba
int fwrite( char *buffer, int size, int count, FILE *f );

ahol :

buffer : Az a memóriacím, ahol a kiiratni kívánt adategység kezdôdik.
size : Az adategység mérete byte-okban kifejezve.
count : A kiiratni kívánt adategységek száma.
f : A file struktúrára mutató pointer.

Ez a függvény kiválóan alkalmas tömbök, struktúrák, ill. struktúra tömbök
kiiratására. Utóbbira lásd: 40. sz. példaprogram.

Adategység formátum nélküli beolvasása file-ból

int fread( char *buffer, int size, int count, FILE *f );


ahol :

buffer : Az a memóriacím, ahova az adategységet be akarjuk olvasni.
size : Az adategység mérete byte-okban kifejezve.
count : A beolvasni kívánt adategységek száma.
f : A file struktúrára mutató pointer.
Ez a függvény kiválóan alkalmas tömbök, struktúrák, ill. struktúra tömbök beolvasására.

File vége ( End Of File ) vizsgálat

int feof( FILE *f );

ahol :
f : A file struktúrára mutató pointer.
A függvény 0 értéket ad vissza, ha nem a file végén vagyunk, ill. nem 0 értéket, ha a file végén vagyunk.


Találat: 2194