Fájlok és könyvtárak (Apache OpenOffice futásidejű programkönyvtár)

From Apache OpenOffice Wiki
< HU/Documentation/BASIC Guide
Revision as of 14:22, 15 May 2009 by Timarandras (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Book.png


A fájlokkal végzett munka egyike egy alkalmazás alapvető feladatainak. Az Apache OpenOffice API számtalan objektumot biztosít az Office-dokumentumok létrehozásához, megnyitásához és módosításához. Ezekről további információért lásd: Az Apache OpenOffice API bemutatása. Ettől függetlenül előfordulhat, hogy közvetlenül el akarjuk érni a fájlrendszert, keresni akarunk könyvtárakban, vagy szerkeszteni szövegfájlokat. Az Apache OpenOffice Basic futásidejű programkönyvtára számos alapfüggvényt biztosít ezekhez a feladatokhoz.

Template:Documentation/Note

Fájlok kezelése

Kompatibilitási mód

A CompatibilityMode utasítás és függvény nagyobb VBA-kompatibilitást biztosít azáltal, hogy bizonyos függvények működését módosítja. Az adott függvényre gyakorolt hatást a függvény leírásában közöljük, alább.

Utasításként a CompatibilityMode( érték ) egy logikai értéket vár, hogy a kompatibilitási mód be van-e vagy ki van-e kapcsolva. Függvényként a CompatibilityMode() egy logikai értéket ad vissza annak megfelelően, hogy a kompatibilitási mód be van-e vagy ki van-e kapcsolva.

CompatibilityMode( True ) 'mód bekapcsolása
CompatibilityMode( False) 'mód kikapcsolása
 
Dim bMode as Boolean
bMode = CompatibilityMode()

Keresés a könyvtárakban

Az Apache OpenOffice Basic Dir függvényével fájlokat és alkönyvtárakat kereshetünk a könyvtárakban. Az első meghíváskor a Dir függvény első paramétereként meg kell adni egy karakterláncot, amely tartalmazza az elérési utat, amelyben keresni akarunk. A Dir második paramétere megadja a keresendő fájlt vagy könyvtárat. Az Apache OpenOffice visszaadja az első megtalált könyvtárbejegyzést. A következő elem megkereséséhez a Dir függvényt paraméterek nélkül kell meghívni. Ha a Dir nem talál több elemet, üres karakterláncot ad vissza.

A következő példa bemutatja, hogyan érhető el az összes fájl egy könyvtárban a Dir függvény használatával. Az eljárás menti az egyes fájlneveket az AllFiles változóban, majd megjeleníti azt egy üzenetablakban.

Sub ShowFiles
  Dim NextFile As String
  Dim AllFiles As String
 
  AllFiles = ""
  NextFile = Dir("C:\", 0)
 
  While NextFile  <> ""
    AllFiles = AllFiles & Chr(13) &  NextFile 
    NextFile = Dir
  Wend
 
  MsgBox AllFiles
End Sub

A 0 (nulla) második paraméterként a Dir függvényben biztosítja, hogy a Dir csak a fájlok neveit adja vissza, a könyvtárakat nem. Itt a következő paraméterek adhatók meg:

  • 0 : normál fájlokat ad vissza
  • 16 : alkönyvtárak

A következő példa majdnem azonos az előzővel, de a Dir függvény a 16-ot kapja paraméterként, ami a mappa alkönyvtárait adja vissza fájlok helyett.

Sub ShowDirs
  Dim NextDir As String
  Dim AllDirs As String
 
  AllDirs = ""
  NextDir = Dir("C:\", 16)
 
  While NextDir <> ""
    AllDirs = AllDirs & Chr(13) &  NextDir
    NextDir = Dir
  Wend
 
  MsgBox AllDirs
End Sub

Template:Documentation/Note

Template:Documentation/Note

Template:Documentation/Note

Könyvtárak létrehozása és törlése

Az Apache OpenOffice Basic az MkDir függvényt biztosítja a könyvtárak létrehozásához.

MkDir ("C:\SubDir1")

Ez a függvény könyvtárakat és alkönyvtárakat hoz létre. Az egy hierarchián belüli könyvtárak is létrehozhatók, ha szükséges. Ha például csak a C:\SubDir1 könyvtár létezik, akkor a

MkDir ("C:\SubDir1\SubDir2\SubDir3\")

függvényhívás létrehozza a C:\SubDir1\SubDir2 könyvtárat és a C:\SubDir1\SubDir2\SubDir3 könyvtárat is.

Az RmDir törli a könyvtárakat.

RmDir ("C:\SubDir1\SubDir2\SubDir3\")

Ha a könyvtár alkönyvtárakat vagy fájlokat tartalmaz, akkor azok is törlődnek. Éppen ezért elővigyázatosan kell használni az RmDir függvényt.

Template:Documentation/Note

Template:Documentation/Note

Fájlok másolása, átnevezése, törlése és létezésük ellenőrzése

A következő hívás létrehozza a Forrás fájl másolatát Cél néven.

FileCopy(Forrás, Cél)

A következő függvénnyel átnevezhetjük a </tt>RégiNév fájlt ÚjNév nevűre. Az <tt>As kulcsszó szintaxisa és az, hogy nincs vessző a függvényben a Basic nyelv gyökereire nyúlik vissza.

Name RégiNév As ÚjNév

A következő hívás törli a Fájlnév fájlt. Ha egy könyvtárat akarunk törölni (annak fájljaival együtt), akkor használjuk az RmDir függvényt.

Kill(Fájlnév)

A FileExists függvénnyel megállapíthatjuk, hogy egy fájl létezik-e:

If FileExists(Fájlnév) Then  
  MsgBox "A fájl létezik."
End If

Fájltulajdonságok beolvasása és módosítása

A fájlokkal végzett munka során néha fontos, hogy meg tudjuk állapítani a fájl tulajdonságait, az utolsó módosítás idejét és a fájl hosszát.

A következő hívás a fájl néhány tulajdonságát adja vissza.

Dim Attr As Integer
Attr = GetAttr(Fájlnév)

A visszaadott érték egy bitmaszk, amely a következő értékeket tartalmazhatja:

  • 1 : csak olvasható fájl
  • 16 : könyvtárnév

A következő példa beolvassa a test.txt fájl bitmaszkját, és megállapítja, hogy a fájl csak olvasható-e, és hogy könyvtár-e. Ha egyik sem, akkor a FileDescription változóhoz a "normál" karakterláncot rendeli.

Dim FileMask As Integer
Dim FileDescription As String
 
FileMask = GetAttr("test.txt")
 
If (FileMask AND 1) > 0 Then
  FileDescription = FileDescription & " csak olvasható "
End IF
 
If (FileMask AND 16) > 0 Then
  FileDescription = FileDescription & " könyvtár "
End IF
 
If FileDescription = "" Then
  FileDescription = " normál "
End IF
 
MsgBox FileDescription

Template:Documentation/Note

A SetAttr függvénnyel módosíthatók egy fájl tulajdonságai. A következő függvény csak olvashatóvá teszi a fájlt.

SetAttr("test.txt", 1)

Ha a fájl csak olvasható, akkor ez a következő függvénnyel állítható vissza:

SetAttr("test.txt", 0)

A fájl módosításának utolsó dátuma és ideje beolvasható a FileDateTime függvénnyel. Itt a dátum a rendszer területi beállításainak megfelelően lesz formázva.

FileDateTime("test.txt")   ' Utolsó módosítás dátumának és idejének beolvasása

A FileLen függvény beolvassa egy fájl hosszát bájtban (hosszú egész számként).

FileLen("test.txt")      ' Beolvassa egy fájl hosszát bájtban.

Szövegfájlok írása és módosítása

Az Apache OpenOffice Basic sokféle módszert biztosít a fájlok olvasására és írására. A következő példák a szövegfájlokkal (és nem a szöveges dokumentumokkal) végzett munkát mutatják be.

Szövegfájlok írása

Mielőtt egy szövegfájlhoz hozzá lehetne férni, meg kell nyitni azt. Ehhez egy szabad fájlkezelő szükséges, amely egyértelműen azonosítja a fájlt a hozzáféréshez.

A FreeFile függvénnyel lehet szabad fájlkezelőt létrehozni.

FileNo = FreeFile

A FileNo egy egész számot tartalmazó változó, amelybe a fájl kezelője kerül. Ezt a kezelőt kapja meg paraméterként az Open utasítás, amely megnyitja a fájlt.

Ha szövegfájlként akarjuk megnyitni a fájlt, az Open utasítást a következőképpen kell használni:

Open Filename For Output As #FileNo

A Filename egy karakterlánc, amely tartalmazza a fájl nevét. A FileNo egy kezelő , amelyet a FreeFile függvény hozott létre.

Ha a fájl meg van nyitva, akkor a Print utasítással lehet írni bele sorról sorra:

Print #FileNo, "Ez egy tesztsor."

A FileNo itt is a fájlkezelő. A második paraméter a fájlba egy sorként menteni kívánt szöveg.

Ha az írási folyamat befejeződött, a fájlt le kell zárni a Close utasítással:

Close #FileNo

A fájlkezelőt itt is meg kell adni.

A következő példa bemutatja egy szövegfájl megnyitását, írását és bezárását.

Dim FileNo As Integer
Dim CurrentLine As String
Dim Filename As String
 
Filename = "c:\data.txt"      ' Fájlnév megadása 
FileNo = FreeFile             ' Szabad fájlkezelő létrehozása
 
Open Filename For Output As #FileNo        ' Fájl megnyitása (írási módban)
Print #FileNo, "Ez egy tesztsor."          ' Sor mentése 
Print #FileNo, "Ez egy másik tesztsor."    ' Sor mentése 
Close #FileNo                              ' Fájl bezárása

Szövegfájlok olvasása

A szövegfájlokat ugyanúgy lehet olvasni, mint írni. A fájlok megnyitásához használt Open utasítás a For Input kifejezést tartalmazza a For Output helyett, és az adatokat író Print parancs helyett, a Line Input utasítást kell használni az adatok olvasásához.

Végül, amikor a program olvassa a szövegfájlt, az eof utasítással ellenőrzi, hogy elérte-e a fájl végét.

eof(FileNo)

A következő példa bemutatja, hogyan olvasható be egy szövegfájl:

Dim FileNo As Integer
Dim CurrentLine As String
Dim File As String
Dim Msg as String
 
' Fájlnév megadása 
Filename = "c:\data.txt"
 
' Szabad fájlkezelő létrehozása
FileNo = FreeFile
 
' Fájl megnyitása (olvasási módban)
Open Filename For Input As FileNo
 
' Fájlvég ellenőrzése
Do While not eof(FileNo)
  ' Sor beolvasása 
  Line Input #FileNo, CurrentLine   
  If CurrentLine <>"" then
    Msg = Msg & CurrentLine & Chr(13)
  end if
Loop
 
 
' Fájl bezárása 
 
Close #FileNo               
Msgbox Msg

Az egyes sorokat a Do While ciklus olvassa be, és tárolja az Msg változóban, majd a program ezt megjeleníti egy üzenetablakban.


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools