Ono za IIf-ove sam komentarisao zbog toga jer je ta komanda ili kako da je nazovem, iako je napisana u
jednom redu pri izvodjenju ustvari 9 redova koda, a rejesenja sa If ... ElseIf ili sa dva If iako naoko izgledaju
duza mnogo su jednostavnija i citkija. I nisam rekao da je IIf tezi od If ...Else If...Else End If End If nego
da je jednako, sto potkrepljuje moje tvrdnje da su oba moja rjesenja koja sam ponudio, iako naizgled
ne izgledaju tako, jednostavnija od dava ugnijezdena IIf-a.
A sto se tice FSO i naredbe Open, iako FSO ima dosta korisnih funkcija, koje olaksavaju rad u odnosu
na naredbu Open, on je za rad sa file-ovima ustvari opremljen samo za rad sa tekstualnim fileovima.
U njega nisu implementirani Binarni i tz. Izravni pristup file-ovima. Binarni nacin necu objasnjavati ali
Izravni moze biti vrlo koristan a evo i zasto:
Ako napravimo svoj Type podataka on direktno moze biti zapisan u file i kasnije vrlo lako iscitan u varijablu.
Recimo imamo Type Imenik
Code:
Private Type Imenik
Ime As String * 16
Prezime As String * 16
Godine As Long
End Type
Sada za upis podataka idemo ovako:
Code:
Dim Osoba As Imenik
Dim fHwnd As Long
Dim I As Long
fHwnd = FreeFile
Open "C:\test.txt" For Random As fHwnd Len = LenB(Osoba)
'Upisivanje 10 razlicitih podataka u file "C:\test.txt"
For I = 0 To 9
Osoba.Ime = "Pero" & I
Osoba.Prezime = "Peric" & I
Osoba.Godine = 18 + I
Put fHwnd, I, Osoba
Next I
Reset 'ili (Close fHwnd)
Sada pri iscitavanju iz fajla pri njegovom otvaranju prosledjujemo duzinu zapisa na koji ce file biti
razdijeljen i iscitavamo ih u varijablu. Ovo je nesto slicno kao komanda "Explode" u PHP i
njemu srodnim jezicima.
Code:
Dim Osoba() As Imenik
Dim fHwnd As Long
Dim I As Long
Dim fCount As Long
ReDim Osoba(0)
fHwnd = FreeFile
Open "C:\test.txt" For Random As fHwnd Len = LenB(Osoba(0))
fCount = LOF(fHwnd) / LenB(Osoba(0))
ReDim Osoba(fCount)
'iscitavanje podataka u varijablu
For I = 0 To fCount
Get fHwnd, I, Osoba(I)
Next I
Reset
Ovo mu sad ustvari dodje kao neka baza podataka,jer se pri iscitavanju promjenom "I" mozes kretati
po podatcima kao po RecordSet-u i mijenjati ih po potrebi i dodavati nove.
Na ovaj nacin ja sam napravio jednu klasu koja je ustvari moja sopstvena baza podataka sa funkcijama
kao u RecordSet-u.
Na slican nacin u file mogu biti zapisani nizovi i visedimenzionalni nizovi a kasnije vrlo lako iscitani.
Jos jedna od "prednosti" je to sto file upisan na ovaj nacin je kao polu-kriptovan, odnosno kad se otvori
u notepadu nije lako dokuciti sadrzaj file-a, ako ne znas o cemu se radi.
I Binarni pristup takodje moze biti skoro neizbjezan (npr. za izmjenu ID3Tag-ova mp3-ca), a FSO je uskracen
za oba ova nacina pristupa file-ovima.
Ako nisi zadovoljan, dodat cu jos koji argument ;-)
Ero S Onoga Sveta