Príkaz Write
Majme prázdny súbor, ktorý ste otvorili prostredníctvom príkazu Open. Avšak prázdny súbor nijak nevyužijeme, takže potrebujeme ho zaplniť nejakými dátami. Pre zapísanie dát do súboru slúži príkaz Write. No nie v každom režime ho môžeme využiť. Využíva sa pri súboroch so sekvenčným prístupom, čiže Write je podporovaný v režime Append a Output. Sekvenčný prístup k súboru má aj režim Input, ale ten je určený len na čítanie a príkaz Write sa nedá použiť.
Sub openFile
Dim id As Integer
Dim path As String
path = "C:\Users\astro\Desktop\makra\zapisnik.txt"
id = FreeFile()
Open path For Output As #id
Write #id, "Hello world!"
Close #id
End Sub
Obsah súboru:
"Hello world!"
Do súboru sme zapísali klasickú hlášku "Hello world!". Prvý argument príkazu Write je identifikačné číslo súboru. Na základe neho vieme povedať, do ktorého súboru chceme zapisovať. Za čiarkou nasleduje výraz, ktorý chceme zapísať do súboru. Čo ak by sme chceli zapísať napr. tri výrazy?
Sub openFile
Dim id As Integer
Dim path As String
path = "C:\Users\astro\Desktop\makra\zapisnik.txt"
id = FreeFile()
Open path For Output As #id
Write #id, "Moje oblubene hry su: Euro Truck Simulator 2","Space Engineers","Factorio" Close #id
End Sub
Obsah súboru:
"Moje oblubene hry su: Euro Truck Simulator 2","Space Engineers","Factorio"
Jednotlivé reťazcové výrazy sú oddelené čiarkou. Zápis dát môžeme upraviť tak, že využijeme viac krát príkaz Write.
Sub openFile
Dim id As Integer
Dim path As String
path = "C:\Users\astro\Desktop\makra\zapisnik.txt"
id = FreeFile()
Open path For Output As #id
Write #id, "Moje oblubene hry su:"
Write #id, "Euro Truck Simulator 2"
Write #id, "Space Engineers"
Write #id, "Factorio" Close #id
End Sub
Obsah súboru:
"Moje oblubene hry su:" "Euro Truck Simulator 2" "Space Engineers" "Factorio"
Tiež dokážeme kombinovať textové reťazce s číselnými premennými.
Sub openFile
Dim id As Integer
Dim path As String
Dim teplota As Double
path = "C:\Users\astro\Desktop\makra\zapisnik.txt" teplota = 35.24 id = FreeFile()
Open path For Output As
#id
Write #id, "Kolko je vonku stupnov?"
Write #id, teplota, "a bude horsie!"
Close #id
End Sub
Obsah súboru:
Kolko je vonku stupnov?" 35,24,"a bude horsie!"
Aj funkcie môžeme využiť, napr. funkciu Now na vypísanie aktuálneho času.
Sub openFile
Dim id As Integer
Dim path As String
Dim teplota As Double
path = "C:\Users\astro\Desktop\makra\zapisnik.txt"
id = FreeFile()
Open path For Output As #id
Write #id, "Aktualny cas je:"
Write #id, Now
Close #id
End Sub
Obsah súboru:
"Aktualny cas je:" #09.07.2020 13:37:20#
Poďme sa pozrieť na syntaktické chyby, ktoré môžete nechcene urobiť. Začnime tým, či je dôležitá čiarka medzi identifikátorom súboru a prvým výrazom?
Sub openFile
Dim id As Integer
Dim path As String
Dim teplota As Double
path = "C:\Users\astro\Desktop\makra\zapisnik.txt"
id = FreeFile()
Open path For Output As #id
Write #id "Aktualny cas je:"
Write #id Now
Close #id
End Sub
Žiadna chybová hláška sa neobjavila, takže medzi identifikátorom súboru a prvým výrazom nemusíte použivať čiarku. Skúsme však zabudnúť na čiarku medzi druhým a tretím výrazom. Prejde nám to?
Sub openFile
Dim id As Integer
Dim path As String
path = "C:\Users\astro\Desktop\makra\zapisnik.txt"
id = FreeFile()
Open path For Output As #id
Write #id, "Moje oblubene hry su: Euro Truck Simulator 2", "Space Engineers" "Factorio"
Close #id
End Sub
Zabudli sme na čiarku medzi druhým a tretím výrazom. Vyskočila nám chybová hláška. Takže, ak máme viac ako jeden výraz, musíme medzi nimi písať čiarku.
Ďalšia chyba, ktorú môžeme spraviť, ak zabudneme na úvodzovky pri definovaní reťazca. Výsledkom je opäť chybová hláška.
Sub openFile
Dim id As Integer
Dim path As String
Dim teplota As Double
path = "C:\Users\astro\Desktop\makra\zapisnik.txt"
teplota = 35.24
id = FreeFile()
Open path For
Output As #id
Write #id, "Kolko je vonku stupnov?"
Write #id, teplota, a bude horsie!
Close #id End Sub
Námet na tento článok poslúžili tieto zdroje:
OpenOffice.org Macros Explained Third Edition, Andrew Pitonyak, page 180-181, dostupné online
Příkaz Write, help.libreoffice.org, dostupné online