Programovanie makier v LibreOffice: Otváranie súborov (2) – príkaz Write

LO.png V predchádzajúcom článku sme sa naučili otvárať súbory prostredníctvom príkazu Open . Avšak prázdne súbory sú praktický nevyužiteľné. Preto ich nakŕmime dátami s pomocou príkazu Write . Príkaz Write sa používa len v režimoch so sekvenčným prístupom k súboru.    

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

02pics.png

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

 

 



(Jako ve škole) Průměr: 1.00 | Hodnotilo: 3
 

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
ABSL MP
Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky astrotech.cz. Mám 24 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.

 
GFI Unlimited
 
 
woo jaw demo hz