Za čitanje i upis sadržaja u neku datoteku na lokalnom disku, prvo je potrebno, na odgovarajući način pristupiti toj datoteci.
Postoji više načina otvaranja datoteke. Sintaksa u opštem slučaju je sljedeća:
Open Putanja/Ime For način As BrojDatoteke
OUTPUT način otvaranja datoteke
OUTPUT način otvaranja datoteke, ako ona ne postoji kreira novu i upisuje podatke u datoteku. Ako datoteka već postoji, biće prebrisana novim podacima. Stavke se upisuju sekvencijalno i to svaka stavka u novi red datoteke. Sintaksa otvaranja datoteke (sa željenom extenzijom) je sljedeća:
Open CurDir & "\setup.ini" For Output As 1
Write #1, podatak1
Write #1, podatak2
Close #1
Gdje su podatak1 i podatak2 neke varijable inicijalizirane prije u programu. Ne zaboraviti zatvoriti datoteku, sa Close nakon završenih operacija jer će se javiti greška ako se ponovo pokuša otvoriti ista datoteka.
INPUT način otvaranja datoteke
INPUT način otvaranja vrši čitanje iz postojeće datoteke. Ako ona ne postoji javlja se greška broj 53. Sintaksa otvaranja datoteke je sljedeća:
Open CurDir & "\setup.ini" For Input As 1
Input #1, podatak1
Input #1, podatak2
Close #1
Naredba Line Input #1, linija učitava čitavu liniju iz otvorene datoteke.
APPEND način otvaranja datoteke
APPEND način otvaranja datoteke omogućava čitanje i pisanje u datoteku. Ako datoteka koja se otvara ne postoji biće kreirana nova sa navedenim imenom. Ako datoteka postoji, ona se otvara i priprema za upis dok će stari podaci biti sačuvani. Sintaksa otvaranja datoteke je sljedeća:
Open CurDir & "\setup.ini" For Append As 1
Upis podataka vrši se na sljedeči način:
Open CurDir & "\setup.ini" For Append As 1
Write #1, podatak1, podatak2
Close #1
Na ovaj način se u datoteci, svakim upisom, stvara red zapisa u kome su stavke odvojene zarezom. Na osnovu poznavanja strukture jednog upisanog reda zapisa vrši se čitanje iz datoteke. Podaci se u postojeću datoteku uvijek dodaju na kraj datoteke, iza zadnjeg zapisa.
Sintaksa za čitanje podataka iz datoteke:
Open CurDir & "\setup.ini" For Append As 1
Input #1, podatak1, podatak2
Close #1
RANDOM način otvaranja datoteke
Ako, prilikom otvaranja datoteke, datoteka nije postojala otvara se nova sa zadanim imenom. Ako je datoteka postojala, ona se otvara i spremna je za upis i čitanje. Karakteristika ovog načina otvaranja datoteke je da se čitanje i upis vrši na tačno određenu poziciju u datoteci.
Prvo otvoriti datoteku sa:
Open CurDir & "\setup.ini" For Random As 1 Len = Len(podatak1)
Gdje Len(podatak1) predstavlja dužinu podataka koji se upisuju.
Upisivanje podataka se vrši na tačno određenu poziciju u datoteci:
Sintaksa za upis podataka je Put #nd, np, podatak1 gdje nd predstavlja broj datoteke, a np broj pozicije na koju se podatak upisuje.
Open CurDir & "\setup.ini" For Random As 1 Len = Len(podatak1)
Put #1, 1, podatak1
Put #1, 2, podatak2
Close #1
Stavka Len = Len(podatak1) određuje dužinu podatka koji se upisuje. Na osnovu toga se vrši upis na tačno određenu poziciju. Važno je da svi podaci koji se upisuju budu iste deklarisane dužine.
Čitanje podataka se vrši sa tačno određene pozicije u datoteci:
Open CurDir & "\setup.ini" For Random As 1 Len = Len(podatak1)
Get #1, 1, podatak1
Get #1, 2, podatak2
Close #1
Broj zapisa u datoteci možemo dobiti korištenjem funkcija LOF(nd) – daje dužinu datoteke čiji je broj nd i LEN(podatak) – daje dužinu podatka na sljedeći način:
BrojZapisa= LOF(nd)/LEN(podatak)
Funkcija LOF(nd) daje dužinu datoteke u bajtima.
Upis i čitanje u INI datoteke
Konfiguracijske .ini datoteke se mogu koristiti za upis postavki za više aplikacija ili segmenata aplikacije. Datoteka je organizovana u vidu sekcija koje su označene uglastim zagradama [sekcija]. Upis i čitanje se vrši pomoću API funkcija.
Potrebno je prvo izvršiti sljedeće deklaracije:
Dim x As String
Dim sSection As String, sEntry As String, sDefault As String
Dim sRetBuf As String, iLenBuf As Integer, sFileName As String
Dim sValue As String, sString As String
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, _
ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Prije upisa ili čitanja je potrebno definisati sljedeće:
sDefault$ = ""
sRetBuf$ = String$(256, 0) '256 praznih mjesta
iLenBuf% = Len(sRetBuf$)
sFileName$ = CurDir & "\setup.ini" 'Ime ini datoteke sa putanjom
Upis dvije stavke u sekciju STAMPA ide pomoću:
sSection$ = "STAMPA" 'Sekcija
sEntry$ = "IMEIPREZIME" 'Stavka
sString$ = txtprvi1.Text
x = WritePrivateProfileString(sSection$, sEntry$, sString$, sFileName$)
sEntry$ = "TEXTTOP" 'Stavka
sString$ = txtprvi2.Text
x = WritePrivateProfileString(sSection$, sEntry$, sString$, sFileName$)
Upis dvije stavke u sekciju FILTER ide pomoću:
sSection$ = "FILTER"
sEntry$ = "NAZIV"
sString$ = txtdrugi1.Text
x = WritePrivateProfileString(sSection$, sEntry$, sString$, sFileName$)
sEntry$ = "IMEIPREZIME"
sString$ = txtdrugi2.Text
x = WritePrivateProfileString(sSection$, sEntry$, sString$, sFileName$)
Čitanje stavke iz sekcije ide pomoću:
sSection$ = "STAMPA"
sEntry$ = "IMEIPREZIME"
sRetBuf$ = String$(256, 0)
x = GetPrivateProfileString(sSection$, sEntry$, sDefault$, sRetBuf$, iLenBuf%, sFileName$)
txtprvi1.Text = sRetBuf$
Slijedi primjer ini datoteke u koju dva dijela aplikaciji upisuju i iz koje čitaju svoje konfiguracijske postavke:
[STAMPA]
IMEIPREZIME="Ime i Prezime1"
TEXTTOP=6824
[FILTER]
NAZIV="Drugi segment2"
IMEIPREZIME="Ime i Prezime2"
Brisanje datoteke sa diska
Nekada je potrebno, npr. privremeno kreirani file, izbrisati sa diska. Brisanje nekog filea sa diska se vrši pomoću funkcije Kill Putanja/ImeDat
Kill "d:\Temp\brisi.txt"
Ako datoteka koja se briše ne postoji, javlja se greska 53 – file not found. Pomoću metoda za lovljenje greške spriječiti 'pucanje' programa u takvom slučaju.
Brisanje direktorija sa diska
Ako je potrebno izbrisati direktorij sa diska koristiti sljedeći kod:
Set delDIR = New FileSystemObject
delDIR.DeleteFolder "putanja\DirZaBrisanje", True
Set delDIR = Nothing
Napomena: Obratite posebnu pažnju prilikom brisanja bilo koje vrste i korisniku uvijek prikazatu poruku za potvrdu akcije brisanja.