visual basic 6.0 obrada pogona, mapa i datoteka

21
Visual Basic 6.0 Obrada pogona, mapa i datoteka

Upload: conner

Post on 19-Mar-2016

48 views

Category:

Documents


2 download

DESCRIPTION

Visual Basic 6.0 Obrada pogona, mapa i datoteka. Uvod: Kad programirate u Windowsima, vrlo je važno imati sposobnost dodavanja, premještanja, mijenjanja, stvaranja ili brisanja mapa (direktorija) i datoteka, te upravljati pogonima i dobivati informacije o njima. Sadržaj - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Visual Basic 6.0  Obrada pogona, mapa i datoteka

Visual Basic 6.0

Obrada pogona, mapa i datoteka

Page 2: Visual Basic 6.0  Obrada pogona, mapa i datoteka

2

Uvod:

Kad programirate u Windowsima, vrlo je važno imati sposobnost dodavanja, premještanja, mijenjanja, stvaranja ili brisanja mapa (direktorija) i datoteka, te upravljati pogonima i dobivati informacije o njima.

Sadržaj

• Uvod u model objekata datotečnog sustava

• Programiranje u modelu FSO objekata

Page 3: Visual Basic 6.0  Obrada pogona, mapa i datoteka

3

Uvod u model objekata datotečnog sustava

• Jedna od osobina Visual Basica je model objekta File System Object (FSO), koji pruža alat temeljen na objektima za rad s mapama i datotekama

• Model FSO objekata (model objekata datotečnog sustava) daje vašim aplikacijama sposobnost stvaranja, mijenjanja, premještanja i brisanja mapa, ili otkrivanja postoji li određena mapa, te ako postoji, gdje.

• On vam takodjer omogućuje dobivanje informacija o mapama, kao što su njihova imena, datum kad su stvorene ili posljednji put mijenjane, itd.

• Model FSO objekata čini također puno lakšim obradu datoteka

• Možete stvarati datoteke, ubacivati i mijenjati podatke, čitati podatke, spremati vaše podatke u binarnu ili tekstualnu datoteku

Page 4: Visual Basic 6.0  Obrada pogona, mapa i datoteka

4Objekti datotečnog sustava

objekt opis

Drive Omogućuje vam skupljanje informacija o pogonima dodijeljenim sustavu.

Folder Omogućuje vam stvaranje, brisanje ili premještanje mapa, te ispitivanje sustava o njihovim imenima, stazama i tako dalje.

File Omogućuje vam stvaranje, brisanje ili premještanje datoteka, te ispitivanje sustava o njihovim imenima, stazama i tako dalje.

FileSystemObject Glavni objekt grupe, pun postupaka koji vam omogućuju stvaranje, brisanje, dobivanje popratnih informacija, te općenito upravljanje pogonima, mapama i datotekama. Većina postupaka povezanih s ovim objektom jednaka je postupcima u ostalim objektima.

TextStream Omogućuje vam čitanje i zapisivanje tekstualnih datoteka.

Page 5: Visual Basic 6.0  Obrada pogona, mapa i datoteka

5Programiranje u modelu FSO objekata

Programiranje u modelu FSO objekata sadržava tri glavna zadatka:

1. Korištenje postupka CreateObject ili dimenzioniranje varijable kao objekta tipa FileSystemObject, za stvaranje objekta tipa FileSystemObject

2. Korištenje odgovarajućeg postupka na novostvorenom objektu

3. Pristup svojstvima objekta

1. Stvaranje objekta tipa FileSystemObject

• Dimenzionirajte varijablu s tipom objekta FileSystemObject:

Dim fso As New FileSystemObject ‘1. način

• Upotrijebite postupak CreateObject za stvaranje objekta tipa FileSystemObject:Set fso = CreateObject(“Scripting.FileSystemObject”) ‘2. način

• U gornjoj sintaksi, Scripting je ime tipske biblioteke, a FileSystemObject je ime objekta, od kojega stvarate primjer.

Page 6: Visual Basic 6.0  Obrada pogona, mapa i datoteka

6

• Model FSO objekata je sadržan u tipskoj biblioteci nazvanoj Scripting, koja se nalazi u datoteci Scrrun.dll.

• Ako već nemate pokazivač na nju, potvrdite stavku Microsoft Scripting Runtime u dijalogu References dostupnom iz izbornika Properties.

2. Korištenje odgovarajućeg postupka

• Idući korak je korištenje odgovarajućeg postupka objekta FileSystemObject. Na primjer, ako želite stvoriti novi objekt, možete upotrijebiti postupke CreateFolder ili CreateTextFile (model FSO objekata ne podržava stvaranje ili brisanje pogona)

• Ako želite obrisati objekte, možete upotrijebiti postupke DeleteFile i DeleteFolder objekta FileSystemObject, ili postupak Delete objekata File i Folder

• Upotrebom odgovarajućih postupaka, možete također kopirati i premještati datoteke i mape

Page 7: Visual Basic 6.0  Obrada pogona, mapa i datoteka

7

• Kako bi dobili pristup postojećem pogonu, datoteci ili mapi, upotrijebite odgovarajući postupak “dobivanja” objekta FileSystemObject:

• GetDrive• GetFolder• GetFile

Primjer za pristup postojećoj datoteci:Dim fso As New FileSystemObject, dato As FileSet dato = fso.GetFile(“c:\test.txt”)

Primjer za stvaranje mape:Private Sub Stvaranje_Mape()Dim fso As New FileSystemObject, mapa As FolderSet mapa = fso.CreateFolder(“c:\MojTest”)MsgBox “Stvorena mapa: “ & mapa.NameEnd Sub

Page 8: Visual Basic 6.0  Obrada pogona, mapa i datoteka

8

3. Pristup svojstvima objekta

• Kad ste jednom stvorili hvataljku za objekt, možete pristupati njezinim svojstvima

• Na primjer, recimo da želite dohvatiti ime određene mape. Najprije ćete stvoriti primjer objekta, zatim ćete ga dohvatiti odgovarajućim postupkom (u ovom slučaju, postupkom GetFolder, jer mapa već postoji):

Set mapa = fso.GetFolder(“c:\”)

• Sad kad imate hvataljku za objekt Folder, možete provjeriti njegovo svojstvo Name: Debug.Print “Ime mape je: “; mapa.Name

• Ako želite pronaći kad je datoteka posljednji put mijenjana, upotrijebite sljedeću sintaksu:Dim fso As New FileSystemObject, dato As File‘ Dohvat objekta File za ispitivanje.Set dato = fso.GetFile(“c:\detlog.txt”)‘ Ispis informacije.Debug.Print “Datoteka je mijenjana: “; dato.DateLastModified

Page 9: Visual Basic 6.0  Obrada pogona, mapa i datoteka

9Rad s pogonima i mapama

• S modelom FSO objekata možete raditi s pogonima i mapama programirajući, isto kako to interaktivno možete u Windows Exploreru

• Možete kopirati i premještati mape, dobivati informacije o pogonima i mapama, i tako dalje

Page 10: Visual Basic 6.0  Obrada pogona, mapa i datoteka

10

Dobivanje informacije o pogonima

Objekt Drive omogućuje vam dobivanje informacije o raznim pogonima dodijeljenima sustavu, fizički ili putem mreže. Njegova svojstva vam omogućuju dobivanje informacija o:

• ukupnoj veličini pogona u bajtovima (svojstvo TotalSize)• koliko je prostora raspoloživo na pogonu u bajtovima (svojstva AvailableSpace ili FreeSpace)• koje je slovo dodijeljeno pogonu (svojstvo DriveLetter)• koji je to tip pogona, je li izmjenjivi, tvrdi, mrežni, CD-ROM ili RAM disk (svojstvo DriveType)• serijskom broju pogona (svojstvo SerialNumber)• tip datotečnog sustava kojeg koristi pogon, kao FAT, FAT32, NTFS, i tako dalje (svojstvo FileSystem)• je li pogon na raspolaganju za upotrebu (svojstvo IsReady)• imenu dijela i/ili volumena (svojstva ShareName i VolumeName)• stazi ili korijenskoj mapi pogona (svojstva Path i RootFolder)

Page 11: Visual Basic 6.0  Obrada pogona, mapa i datoteka

11Primjer korištenja objekta Drive

U sljedećem kodu nećete vidjeti pokazivač na stvarni objekt Drive; umjesto toga, upotrijebit ćete postupak GetDrive za dobivanje pokazivača na postojeći objekt Drive (u ovom slučaju, pog):

Private Sub Command1_Click()Dim fso As New FileSystemObject, pog As Drive, s As StringSet pog = fso.GetDrive(fso.GetDriveName(“c:”))s = “Pogon “ & UCase(“c:”) & “ – “s = s & pog.VolumeName & vbCrLfs = s & “Ukupno prostora: “ & _FormatNumber(pog.TotalSize / 1024, 0)s = s & “ Kb” & vbCrLfs = s & “Slobodnog prostora: “ & _FormatNumber(pog.FreeSpace / 1024, 0)s = s & “ Kb” & vbCrLfMsgBox sEnd Sub

Page 12: Visual Basic 6.0  Obrada pogona, mapa i datoteka

12Rad s mapama

Sljedeći popis pokazuje uobičajene poslove s mapama i postupke za njihovo ostvarivanje:

posao postupakStvaranje mape FileSystemObject.CreateFolderBrisanje mape Folder.Delete ili

FileSystemObject.DeleteFolderPremještanje mape Folder.Move ili

FileSystemObject.MoveFolderKopiranje mape Folder.Copy ili

FileSystemObject.CopyFolderDohvaćanje imena mape Folder.NamePronalaženje postoji li mapa na pogonu FileSystemObject.FolderExistsDobivanje primjera postojećeg objekta Folder FileSystemObject.GetFolderPronalaženje imena roditeljske mape FileSystemObject.GetParentFolderNamePronalaženje staze sistemskih mapa FileSystemObject.GetSpecialFolder

Page 13: Visual Basic 6.0  Obrada pogona, mapa i datoteka

13Private Sub Command2_Click()‘ Dobivanje primjera objekta FileSystemObject.Dim fso As New FileSystemObject, mapa As Folder, s As String‘ Dobivanje objekta Folder.Set mapa = fso.GetFolder(“c:”)‘ Ispis imena roditeljske mape.Debug.Print “Ime roditeljske mape je: “ & mapa‘ Ispis imena pogona.Debug.Print “Sadržana je na pogonu “ & mapa.Drive‘ Ispis imena korijenske datoteke.If mapa.IsRootFolder = True ThenDebug.Print “Ova mapa je korijenska mapa.”ElseDebug.Print “ Ova mapa nije korijenska mapa.”End If‘ Stvaranje nove mape objektom FileSystemObject.fso.CreateFolder (“c:\Lažna”)Debug.Print “Stvorena je mapa C:\Lažna.”‘ Ispis osnovnog imena mape.Debug.Print “Osnovno ime = “ & fso.GetBaseName(“c:\Lažna”)‘ Brisanje novostvorene mape.fso.DeleteFolder (“c:\Lažna”)Debug.Print “Obrisana je mapa C:\Lažna.”End Sub

Page 14: Visual Basic 6.0  Obrada pogona, mapa i datoteka

14Rad s datotekama

• Možete raditi s datotekama u Visual Basicu upotrebom novih objektno usmjerenih FSO objekata , kao što su Copy, Delete, Move i OpenAsTextStream, među ostalima, ili upotrebom starijih postojećih funkcija kao što su Open, Close, FileCopy, GetAttr i tako dalje

• Možete premještati, kopirati i brisati datoteke neovisno o njihovom tipu

Postoje dvije glavne kategorije upravljanja datotekama:

• Stvaranje, dodavanje ili brisanje podataka, i čitanje datoteka

• Premještanje, kopiranje i brisanje datoteka

Page 15: Visual Basic 6.0  Obrada pogona, mapa i datoteka

15

Stvaranje datoteka i dodavanje podataka sa FSO objektima

Postoje tri načina stvaranja sekvencijalne datoteke teksta (ponekad nazvane kao “tijek teksta”)

1. Korištenje postupka CreateTextFile. Praznu tekstualnu datoteku možete stvoriti ovako:

Dim fso As New FileSystemObject, dato As FileSet dato = fso.CreateTextFile(“c:\testdato.txt”, True)

Napomena: Model FSO objekata još ne podržava stvaranje binarnih datoteka i datoteka s izravnim pristupom

2. Drugi način je upotreba postupka OpenTextFile objekta FileSystemObject s postavljenom zastavicom ForWriting:

Dim fso As New FileSystemObject, ts As New TextStreamSet ts = fso.OpenTextFile(“c:\testdato.txt”, ForWriting)

Page 16: Visual Basic 6.0  Obrada pogona, mapa i datoteka

16

3. Također možete upotrijebiti postupak OpenAsTextStream s postavljenom zastavicom ForWriting:

Dim fso As New FileSystemObject, dato As File, ts As _ TextStreamSet fso = CreateObject(“Scripting.FileSystemObject”)fso.CreateTextFile(“test1.txt”)Set dato = fso.GetFile(“test1.txt”)Set ts = dato.OpenAsTextStream(ForWriting)

Page 17: Visual Basic 6.0  Obrada pogona, mapa i datoteka

17Dodavanje podataka datoteci

Kad je stvorena tekstualna datoteka, možete joj dodati podatke u tri koraka:

1. Otvorite tekstualnu datoteku za zapisivanje podataka.2. Zapišite podatke.3. Zatvorite datoteku.

Ad 1. Kako bi otvorili datoteku, možete upotrijebiti jedan od dva postupka: postupak OpenAsTextStream objekta File, ili postupak OpenTextFile objekta FileSystemObject.

Ad 2. Kako bi zapisali podatke u otvorenu tekstualnu datoteku, upotrijebite postupak Write ili postupak WriteLine, oba od objekta TextStream. Jedina razlika između ova dva postupka je što postupak WriteLine dodaje karakter oznake nove linije na kraj određenog stringa.Ako želite dodati novu liniju tekstualnoj datoteci, upotrijebite postupakWriteBlankLines.

Ad 3. Kako bi zatvorili otvorenu datoteku, upotrijebite postupak Close objekta TextStream.

Page 18: Visual Basic 6.0  Obrada pogona, mapa i datoteka

18Čitanje podataka sa FSO objektima

Kako bi pročitali podatke iz tekstualne datoteke, upotrijebite postupke Read, ReadLine ili ReadAll objekta TextStream:

posao postupak

Čitanje određenog broja karaktera iz datoteke ReadČitanje cijele linije (sve do, ali ne uključujući, ReadLinekarakter oznake nove linije)Čitanje cijelog sadržaja tekstualne datoteke ReadAll

• Ako koristite postupke Read ili ReadLine i želite preskočiti do određenog dijela podataka, možete upotrijebiti postupke Skip ili SkipLine.

• Rezultirajući tekst postupaka čitanja spremljen je u stringu koji može biti prikazan u kontroli, dijeljen operatorima stringa (kao što su Left, Right i Mid), ulančan i tako dalje.

Page 19: Visual Basic 6.0  Obrada pogona, mapa i datoteka

19Primjer:

Sub Čitanje_Datoteka()Dim fso As New FileSystemObject, txtdatoteka, _dat1 As File, ts As TextStreamSet txtdatoteka = fso.CreateTextFile(“c:\testdato.txt”, _True)MsgBox “Zapisivanje datoteke”‘ Zapisivanje linije.Set dat1 = fso.GetFile(“c:\testdato.txt”)Set ts = dat1.OpenAsTextStream(ForWriting)ts.Write “Pozdrav svijetu”ts.Close‘ Čitanje sadržaja datoteke.Set ts = dat1.OpenAsTextStream(ForReading)s = ts.ReadLineMsgBox sts.CloseEnd Sub

Page 20: Visual Basic 6.0  Obrada pogona, mapa i datoteka

20

Premještanje, kopiranje i brisanje datoteka

Model FSO objekata ima po dva postupka za premještanje, kopiranje i brisanje datoteka:

posao postupak

premještanje datoteke File.Move ili FileSystemObject.MoveFilekopiranje datoteke File.Copy ili FileSystemObject.CopyFilebrisanje datoteke File.Delete ili FileSystemObject.DeleteFile

Primjer:

Ovaj primjer stvara tekstualnu datoteku u korijenskom (root) direktoriju pogona C, zapisuje neke informacije u nju, premješta je u direktorij imena \tmp, stvara njezinu kopiju u direktoriju imena \temp, te zatim briše kopije iz oba direktorija.

Page 21: Visual Basic 6.0  Obrada pogona, mapa i datoteka

21Sub Upravljanje_datotekama()Dim fso As New FileSystemObject, txtdatoteka, dat1, dat2Set txtdatoteka = fso.CreateTextFile(“c:\testdato.txt”, True)MsgBox “Zapisivanje datoteke” ‘ CreateTextFile vraća TextStream‘ Zapisivanje linije. objekttxtdatoteka.Write(“Ovo je test.”)‘ Zatvaranje datoteke za zapisivanje.txtdatoteka.CloseMsgBox “Premještanje datoteke u c:\tmp”‘ Dobivanje hvataljke za datoteku u korijenskom dir-u c:\.Set dat1 = fso.GetFile(“c:\testdato.txt”)‘ Premještanje datoteke u direktorij \tmp.dat1.Move(“c:\tmp\testdato.txt”)MsgBox “Kopiranje datoteke u c:\temp”‘ Kopiranje datoteke u \temp.dat1.Copy(“c:\temp\testdato.txt”)MsgBox “Brisanje datoteke”‘ Dobivanje hvataljki za trenutne položaje datoteka.Set dat1 = fso.GetFile(“c:\tmp\testdato.txt”)Set dat2 = fso.GetFile(“c:\temp\testdato.txt”)‘ Brisanje datoteka.dat1.Deletedat2.DeleteMsgBox “Sve je obavljeno!”End Sub