Da bi se koristio FileSystemObject potrebno je u References ukljuciti Microsoft Scripting Runtime (scrrun.dll).
FileSystemObject OBJEKTNI MODEL
(koristim Code tag jer je tako lepo formatirano :))
Code:
---------------------------------------------------------------------------------
OBJEKAT KOLEKCIJA OPIS
---------------------------------------------------------------------------------
Dictionary Top-level objekat. Slican VBA Collection objektu.
Drive Drives Predstavlja drajv/kolekciju drajvova.
File Files Predstavlja fajl/kolekciju fajlova.
FileSystemObject Top-level objekat. Koristi se za pristup i rad sa
drajvovima , folderima i fajlovima
Folder Folders Predstavlja folder/kolekciju foldera
TextStream Koristi se za rad sa tekstualnim fajlovima (read,
write, append)
---------------------------------------------------------------------------------
1. TextStream OBJEKAT
Kreira se metodoma FileSystemObjecta OpenTextFile ili CreateTextFile.
1.1. OpenTextFile
Otvara navedeni fajl, vraca TextStream objekat koji se moze koristiti za citanje ili pisanje u fajl.
Code:
object.OpenTextFile(filename[, iomode[, create[, format]]])
object - FSO
filename - Naziv fajla
iomode - Opcioni parametar, input/output mode (ForReading=1, ForWriting=2, ForAppending=8)
create - Opcioni parametar tipa Boolean, indikator da li treba kreirati fajl ako ne postoji. Default vrednost je False
format - Opcioni parametar, predstavlja format fajla
TristateUseDefault=-2 koristi se system default
TristateTrue=-1 Unicode
TristateFalse=0 ASCII
Default vrednost je TristateFalse
1.2. CreateTextFile
Kreira fajl, vraca TextStream objekat koji se moze koristiti za citanje ili pisanje u fajl.
Code:
object.CreateTextFile(filename[, overwrite[, unicode]])
object - FileSystemObject ili Folder objekat.
filename - naziv fajla koji treba da bude kreiran
overwrite - Opcioni parametar, tipa Boolean, da li treba 'pregaziti' fajl ako postoji. Default False
unicode - Opcioni parametar, tipa Boolean, da li fajl kreirati kao Unicode (True) ili ASCII (False). Default False
TextStream PROPERTIES
AtEndOfLine - Boolean, Read Only, vraca True ako je fajl pointer pozicioniran na EOL (end-of-line) marker tj. na kraj linije. Moze se koristiti samo ako je TextStream fajl otvoren za citanje.
AtEndOfStream - Boolean, Read Only, vraca True ako je fajl pointer pozicioniran na kraj TextStream fajla. Moze se koristiti samo ako je TextStream fajl otvoren za citanje.
Column - Read Only, vraca redni broj kolone u kojoj se nalazi karakter na koji je pozicioniran fajl pointer
Line - Read Only, vraca redni broj linije fajla u kojoj se nalazi fajl pointer
TextStream METHODS
Close - zatvara otvoreni TextStream fajl
Read(characters) - cita odredjeni broj karaktera iz fajla i vraca odgovarajuci string
ReadAll - cita ceo fajl i vraca sadrzaj u jednom stringu
ReadLine - cita tekucu liniju iz fajla
Skip(characters) - preskace (ignorise) oderedjeni broj karaktrera iz fajla
SkipLine - preskace (ignorise) tekucu liniju u fajlu
Write(string) - upisuje string u fajl
WriteLine([string]) - upisuje string u fajl i oznaku za prelazak u novi red. Ako se string izostavi, upisuje oznaku za prelazak u novi red.
WriteBlankLines(lines) - upisuje odredjeni broj oznaka za prelazak u novi red (praznih linija)
PRIMERI:
1. Kod koji otvara fajl i upisuje u njega string (za dodavanje na kraj fajla koristiti ForAppending umesto ForWriting)
Code:
Dim oFSO As Scripting.FileSystemObject
Dim oTextStream As Scripting.TextStream
Set oFSO = New Scripting.FileSystemObject
Set oTextStream = oFSO.OpenTextFile("C:\test.txt", _
ForWriting, _
True, _
TristateFalse)
oTextStream.WriteLine ("JUHU")
oTextStream.Close
Set oTextStream = Nothing
Set oFSO = Nothing
2. Citanje fajla karakter po karakter
Code:
Dim oFSO As Scripting.FileSystemObject
Dim oTextStream As Scripting.TextStream
Set oFSO = New Scripting.FileSystemObject
Set oTextStream = oFSO.OpenTextFile("C:\test.txt", _
ForReading, _
True, _
TristateFalse)
While Not oTextStream.AtEndOfStream
Debug.Print oTextStream.Read (1)
Wend
oTextStream.Close
Set oTextStream = Nothing
Set oFSO = Nothing
3. Citanje fajla, liniju po liniju
Code:
Dim oFSO As Scripting.FileSystemObject
Dim oTextStream As Scripting.TextStream
Set oFSO = New Scripting.FileSystemObject
Set oTextStream = oFSO.OpenTextFile("C:\test.txt", _
ForReading, _
True, _
TristateFalse)
While Not oTextStream.AtEndOfStream
Debug.Print oTextStream.ReadLine
Wend
oTextStream.Close
Set oTextStream = Nothing
Set oFSO = Nothing
Cini mi se da bi ovo moglo nekako lepse da se formatira ali ne znam kako, tako da ako moderatori misle da ovo moze lepse da izgleda, samo napred menjate.
Mislim da je ovo dovoljno za citanje/pisanje u fajl. Anyway, nastavice se :)
[
Ovu poruku je menjao mladenovicz dana 02.09.2003. u 16:06 GMT]