Difference between revisions of "HU/Documentation/BASIC Guide/Files and Directories (Runtime Library)"
Timarandras (Talk | contribs) (New page: {{HU/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=HU/Documentation/BASIC Guide/Date and Time (Runtime Library) |NextPage=HU/Documentation/BASIC Guide/Me...) |
|||
Line 10: | Line 10: | ||
A fájlokkal végzett munka egyike egy alkalmazás alapvető feladatainak. Az {{OOo}} 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: [[HU/Documentation/BASIC Guide/API Intro|Az {{OOo}} 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 {{OOo}} Basic futásidejű programkönyvtára számos alapfüggvényt biztosít ezekhez a feladatokhoz. | A fájlokkal végzett munka egyike egy alkalmazás alapvető feladatainak. Az {{OOo}} 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: [[HU/Documentation/BASIC Guide/API Intro|Az {{OOo}} 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 {{OOo}} Basic futásidejű programkönyvtára számos alapfüggvényt biztosít ezekhez a feladatokhoz. | ||
− | {{ | + | {{Note|Néhány DOS-specifikus fájl- és könyvtárfüggvény már nem támogatott az {{OOo}} programban, vagy csak korlátozottan használható. Például a <tt>ChDir</tt>, <tt>ChDrive</tt> és a <tt>CurDir</tt> függvény nem használható. Néhány DOS-specifikus tulajdonság már nem használható olyan függvényekben, amelyek fájltulajdonságokat várnak paraméterként (például a rejtett fájlok és rendszerfájlok megkülönböztetéséhez). Erre a változásra azért volt szükség, hogy az {{OOo}} platformfüggetlenségét a lehető legmagasabb szinten biztosítani lehessen.}} |
== Fájlok kezelése == | == Fájlok kezelése == | ||
Line 75: | Line 75: | ||
</source> | </source> | ||
− | {{ | + | {{Note|Az {{OOo}} Basicben a <tt>Dir</tt> függvény a 16-os paraméterrel csak a mappa alkönyvtárait adja vissza. A VBA-ban a függvény a normál fájlok neveit is visszaadja, így további műveleteket kell végrehajtani, ha csak a fájlok neveire van szükség. A <tt>CompatibilityMode ( true )</tt> függvény használatával az {{OOo}} ugyanúgy működik, mint a VBA, és a Dir függvény a 16-os paramétert megadva az alkönyvtárakat és a fájlokat is visszaadja.}} |
− | {{ | + | {{Note|A VBA egyéb keresési lehetőségei, konkrétan a '''rejtett''', '''rendszer''', '''archív''' és '''kötet''' fájltípusokra való keresés nem létezik az {{OOo}} programban, mert ezek a fájlrendszer-funkciók nem találhatók meg minden operációs rendszeren.}} |
− | {{ | + | {{Note|A <tt>Dir</tt> függvényben megadott elérési utak tartalmazhatják a * és a ? helyettesítő karaktert a VBA-ban és az {{OOo}} Basicben is. Viszont az {{OOo}} Basicben a * helyettesítő karakter csak a fájlnév és/vagy kiterjesztés végén állhat, de VBA-ban ez nem így van. }} |
=== Könyvtárak létrehozása és törlése === | === Könyvtárak létrehozása és törlése === | ||
Line 105: | Line 105: | ||
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 <tt>RmDir</tt> függvényt. | 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 <tt>RmDir</tt> függvényt. | ||
− | {{ | + | {{Note|A VBA-ban az <tt>MkDir</tt> és az <tt>RmDir</tt> függvény csak az aktuális könyvtárra vonatkozik. Ezzel szemben az {{OOo}} Basicben az <tt>MkDir</tt> és az <tt>RmDir</tt> több könyvtárszint létrehozására vagy törlésére is használható.}} |
− | {{ | + | {{Note|A VBA-ban az <tt>RmDir</tt> hibaüzenetet jelenít meg, ha a könyvtár fájlt tartalmaz. Az {{OOo}} Basicben a könyvtár '''és abban minden fájl''' törölve lesz. Ha a <tt>CompatibilityMode ( true )</tt> függvényt használjuk, akkor az {{OOo}} Basic úgy fog működni, mint a VBA.}} |
=== Fájlok másolása, átnevezése, törlése és létezésük ellenőrzése === | === Fájlok másolása, átnevezése, törlése és létezésük ellenőrzése === | ||
Line 176: | Line 176: | ||
</source> | </source> | ||
− | {{ | + | {{Note|A VBA-ban használt jelzők ('''rejtett''', '''rendszer, archív''' és '''kötetnév''') nem támogatottak az {{OOo}} Basicben, mert ezek Windows-specifikus tulajdonságok, és csak részlegesen érhetők el más operációs rendszereken.}} |
A <tt>SetAttr</tt> 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. | A <tt>SetAttr</tt> 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. |
Latest revision as of 06:53, 7 July 2018
- Konverziós függvények
- Karakterláncok
- Dátum és idő
- Fájlok és könyvtárak
- Üzenet- és beviteli ablakok
- Egyéb függvények
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.
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
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.
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
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). |