Lucrul cu fisiere

Un aspect important cand vine vorba de programare este lucrul cu fisierele. Operatiile de citire si scriere a datelor in fisiere sunt foarte des intalnite in majoritatea programelor importante. AutoIt pune la dispozitia programatorilor atat functii native cat si user-defined pentru lucrul cu fisierele.

 

  1. Functii native pentru lucrul cu fisierele

a)      FileOpen

Pentru a putea efectua operatii de citire/scriere in fisiere, acestea trebuie mai intai deschise. Acest lucru se face cu functia FileOpen iar ca rezultat functia va returna un handle al fisierului. Functia are 2 parametri: un sir de caractere reprezentand numele fisierului si optional modul de deschidere a fisierului (default = 0). Posibile valori pentru parametrul mode sunt date in tabelul de mai jos. Acestea pot fi folosite in diferite combinatii.

0

Deschidere pentru citire

1

Deschidere pentru scriere (adauga la final de fisier)

2

Deschidere pentru scriere (sterge continutul existent)

8

Creaza structura directorului daca nu exista

16

Mod binar

32

Unicode UTF16 Little Endian

64

Unicode UTF16 Big Endian

128

Unicode UTF8 (cu BOM – Byte Order Mark)

256

Unicode UTF8 (fara BOM – Byte Order Mark)

16384

La deschiderea pentru citire daca nu este prezent BOM, efectueaza detectare pentru UTF8.

Modul default pentru scrierea in fisier este ANSI – folositi modurile 32-16384 pentru a modifica acest lucru. Orice handle al unui fisier trebuie inchis (folosind functia FileClose) dupa terminarea efectuarii operatiilor in fisier.

b)      FileRead

Efectueaza operatia de citire a datelor dintr-un fisier. Functia are 2 parametrii: primul este hande-ul fisierului (obtinut in urma deschiderii fisierului cu functia FileOpen) sau un sir de caractere reprezentand numele fisierului (caz in care se executa automat operatia de deschidere, citire si inchidere a fisierului) si numarul de caractere pe care vrem sa le citim (default = tot fisierului).

c)      FileWrite

Efectueaza operatia de scriere a datelor intr-un fisier. Functia are 2 parametrii: primul este hande-ul fisierului (obtinut in urma deschiderii fisierului cu functia FileOpen) sau un sir de caractere reprezentand numele fisierului (caz in care se executa automat operatia de deschidere, scriere si inchidere a fisierului) si datele pe care vrem sa le scriem in fisier.

 

d)      FileReadLine

Similara functieri FileRead, cu particularitatea ca este folosita pentru a citi o singura linie dintr-un fisier iar al doilea parametru este linia din fisier pe care vrem sa o citim.

e)      FileWriteLine

Similara functiei FileWrite, cu particularitatea ca adauga o linie la textul existent.

f)        FileFlush

Forteaza scrierea datelor din buffer-ul fisierului pe disc. Functia are ca parametru un handle al unui fisier.

g)      FileSetPos

Seteaza pozitia curenta in fisier. Functia are 3 parametri: un handle al unui fisier, offset-ul (pozitia) si punctul de referinta (0 – de inceputul fisierului; 1 – de la pozitia curenta; 2 – de la finalul fisierului).

h)      FileGetPos

Returneaza pozitia curenta in fisier. Are ca parametru un handle al unui fisier.

i)        FileClose

Inchide un fisier deschis cu functia FileOpen. Are ca parametru handle-ul unui fisier deschis.

Nota: functia FileClose trebuie folosita pentru orice fisier deschis, indiferent daca este deschis pentru citire sau pentru scriere.

 

Nota generala: exemplele de mai sus trebuie tratate ca atare, se poate observa ca intentionat nu a fost folosita functia FileClose inainte de a fi descrisa.

 

 

  1. Functii user-defined pentru lucrul cu fisierele

AutoIt pune la dispozitia programatorilor si functii user-defined, incluse in fisierul antent File.au3. Cele mai uzuale dintre ele sunt:

a)      _FileCountLines

Functia returneaza numarul de linii dintr-un fisier. Functia are ca parametru un sir de caractere continand calea si numele fisierului.

b)      _FileListToArray

Returneaza un vector care contine fisierele (sau foldere) dintr-un director, in acord cu parametrul flag. Functia are 3 parametri: calea directorului in care se cauta, un sir care reprezinta un filtru (wildcards) pentru a identifica fisierele dupa extensie si flag care indica daca se cauta fisiere (flag=0 – Default), foldere (flag=1) sau ambele (flag=2).

Un posibil rezultat al acestei functii:

Nota: indexul 0 al vectorului contine numarul de fisiere gasite.

c)      _FilePrint

Aceasta functie printeaza un fisier. Functia are 2 parametri: primul este un sir de caractere care contine calea si numele fisierului iar al doilea (optional) starea ferestrei (default=@SW_HIDE).

d)      _FileWriteToLine

Aceasta functie scrie date pe o linie intr-un fisier (nu neaparat la final de fisier). Functia are 4 parametri: primul este un sir de caractere care contine calea si numele fisierului, al doilea este numarul linie pe care se vor scrie datele, al treilea parametru este o variabila (expresie) care contine datele ce urmeaza sa fie scrise iar ultimul parametru (optional) indica daca se va suprascrie linia (default=0).

e)      _ReplaceStringInFile

Inlocuieste un sir de caractere intr-un fisier. Functia are 5 parametri: un sir de caractere care contine calea si numele fisierului, sirul care se cauta a fi inlocuit, sirul cu care se inlocuieste si optional parametri care indica daca cautarea este case sensitive si numarul de ocurente. Functia va returna numarul de substituri facute.


* Pentru orice intrebari sau nelamuriri legate de curs sau limbajul AutoIt accesati sectiunea AutoIt a forumului SkullBox sau platforma de suport tehnic NetHelp.