HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Műveletek szövegfájlokkal


Windows Scripting Host 7. rész

Példaprogram letöltése

3044 bájt

Sorozatunk előző részében megismerkedtünk a Windows Scripting Host-ban elérhető FileSystemObject-el elvégezhető fájlműveletekkel. Most a szövegfájlok létrehozásával, írásával, olvasásával fogunk foglalkozni.
Cikkünkhöz mellékelve megtalálhatók a példákban szereplő szkriptek:

"CreateTextFile.vbs" - "teszt.txt" néven létrehoz egy szövegfájlt és beleír egy sort, egy újsor karakterrel lezárva.
"EditTextFile.vbs" - Megnyitja hozzáfűzésre az előbbi fájlt és hozzáír néhány sort.
"ReadTextFile.vbs" - Beolvassa a fájl teljes tartalmát és megjeleníti egy ablakban a képernyőn.
"SkipReadTextFile.vbs" - Csak bizonyos sorokat olvas be és jelenít meg.

Hagyományos szöveg (.TXT) fájlok generálására és kezelésére teljes körű támogatást építettek a FileSystemObject-be. Programok konfigurációs állományainak (az INI fájlokhoz hasonlóan) használhatók, de hibaüzenetek vagy naplóállományok készítésére ugyanúgy megfelelnek. Kezelése úgy történik, hogy egy TextStream objektumhoz kell hozzárendelni a fizikai fájlt és ezen objektum metódusait és tulajdonságait lehet használni. A TextStream interfészt képez a fájl és a felhasználói szkript között.

Először hozzunk létre egy szövegfájlt úgy, hogy írjunk bele egy sor szöveget:
Dim fso, TextFile
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set TextFile = fso.CreateTextFile("teszt.txt", True)
   TextFile.WriteLine("Windows Software Online példa szkript ")
   TextFile.Close

A fenti példából látszik, hogy a létrehozásra a "CreateTextFile" metódus szolgál. Szintaxisa:
"CreateTextFile (fájlnév, felülírás, unicode)"

fájlnév = sztring. A létrehozandó szövegfájl neve elérési úttal. Ha az utóbbi hiányzik (mint a fenti példában is), akkor abban a mappában jön létre, ahol el lett indítva a szkript.
felülírás = logikai. Nem szükséges megadni. Létező ugyanilyen nevű fájlt felülírja (TRUE) vagy nem (FALSE).
unicode = logikai. Nem szükséges megadni. Ha TRUE akkor Unicode, ha FALSE akkor ASCII fájl keletkezik.
A metódus nem pusztán létrehozza a fájlt, hanem szerkesztésre meg is nyitja. Így a lezárásig írási műveleteket is végezhetünk.

WriteLine (sztring) = A sztringben megadott szöveget elhelyezi a fájlban az aktuális pozíciótól kezdve (lásd később) és egy újsor karakterrel zárja.

Close = Lezárja a nyitott fájlt. Ismételt szerkesztéshez meg kell nyitni.

Szövegfájlok megnyitása szerkesztés céljából:
OpenTextFile (fájlnév, IOmód, újfájl, formátum)

IOmód = Nem szükséges megadni. Az alábbi három értéket veheti fel: 1 ("ForReading") = olvasásra, 2 ("ForWriting") = írásra, 8 ("ForAppending") = a fájl végéhez való hozzáírásra lehet megnyitni.
újfájl = logikai. Nem szükséges megadni. Ha értéke: TRUE akkor abban az esetben, ha adott névvel és helyen nem létezik fájl - létrehozza.
formátum = Nem szükséges megadni. A következő értékeket veheti fel: "TristateTrue" = megnyitás mint Unicode, "TristateFalse" = megnyitás mint ASCII, "TristateUseDefault" = a rendszer alapbeállításainak megfelelő megnyitás.

Láthatjuk, hogy a fájl létrehozás két úton is elérhető: az egyik a "CreateTextFile", a másik a "OpenTextFile(fájlnév,,True)" metódus.

Nyissuk meg az előbbi fájlt, a végéhez fűzzünk hozzá: 1 elválasztó sort, 2 üres sort és végül egy szöveget, amelyet nem zár újsor karakter:
Dim fso, TextFile
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set TextFile = fso.OpenTextFile("teszt.txt",8)
   TextFile.WriteLine("-----------------------------------------------")
   TextFile.WriteBlankLines (2)
   TextFile.Write ("Ezt a sort nem zárja újsor karakter")
   TextFile.Close

Példánkban látható, hogy a "Write" parancsot milyen variációkban tudjuk alkalmazni.

Most már birtokunkban van minden információ egy szövegfájl szkriptből való létrehozására és feltöltésére. Következzenek az olvasó metódusok:

Kiolvassuk az első sort és megjelenítjük egy üzenetablakban:
Dim fso, TextFile, Sor
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set TextFile = fso.OpenTextFile("teszt.txt",1)
   Sor = TextFile.ReadLine
   TextFile.Close
  MsgBox (Sor)

A "ReadLine" parancs mindig a sor elejétől a következő újsor karakterig olvas. X számú karakter kiolvasására a "Read (X)" és a teljes szövegfájl beolvasását egy változóba a "ReadAll" metódussal lehet végrehajtani. Mindig a memóriába kerül a tartalom, ezért az utóbbinál vigyázzunk nehogy kifussunk az erőforrásokból.

De mi van, ha ki akarunk hagyni az olvasásból egy teljes sort? Használjuk a "SkipLine" utasítást és X karakter kihagyásához pedig a "Skip (x)"-et:
Dim fso, TextFile, Sor
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set TextFile = fso.OpenTextFile("teszt.txt",1)
   Sor = TextFile.ReadLine
   TextFile.SkipLine
   TextFile.SkipLine
   TextFile.SkipLine
   Sor = Sor + " *** " + TextFile.Read (27)
   TextFile.Close
  MsgBox (Sor)



Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2001 évkönyv 251. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |