Seite 1 von 1

ics-Datei mit Makro erstellen - Ausgabe in utf-8 Format

Verfasst: Fr 6. Sep 2019, 14:33
von pbES
Hallo,
ich habe ein Makro, das mit Termine als ics-Datei aus einer .ods-Datei herausschreibt.

Leider ist die Ausgabedatei im ANSI-Format; die Umlaute sind in thunderbird nicht importierbar, mit utf-8 geht's. Jetzt möchte ich nicht jedes Mal den Editor bemühen. Hat mir jemand eine bessere Idee?

Der Beginn des Makros:

'#########
' Kalenderdatei öffnen, In Datei schreiben
strDatnam = "D:\Test\test4.ics"
intFF = FreeFile()
Open strDatnam For Output As #intFF
Print #intFF, "BEGIN:VCALENDAR"
Print #intFF, "VERSION:2.0"
Print #intFF, "PRODID:-//Posteo Webmail//NONSGML Calendar//EN"
Print #intFF, "X-WR-Timezone: Europe/Berlin"
' dann kommen die Termine....
' Ende des Makros:

Print #intFF,"END:VCALENDAR"
Close #intFF

end sub

Elegant geht bestimmt anders. Ist mein erster Versuch :-)

Danke!

Gruß Petra

Re: ics-Datei mit Makro erstellen - Ausgabe in utf-8 Format

Verfasst: Fr 6. Sep 2019, 18:14
von musikai
Hi,

versuchs mal damit. Vorher lösche Deine "test4.ics"-Datei komplett, damit kein Mischmasch entsteht.

Code: Alles auswählen

sub write_ics
strDatnam = "D:\Test\test4.ics"
oSFA = CreateUnoService("com.sun.star.ucb.SimpleFileAccess")
If oSFA.exists( strDatnam ) Then oSFA.kill( strDatnam )
oTextoutputStream = CreateUnoService("com.sun.star.io.TextOutputStream")
ooutputStream = oSFA.openFileWrite(strDatnam)
oTextoutputStream.setOutputStream(ooutputStream)

oTextoutputStream.writeString("BEGIN:VCALENDAR" & CHR$(13) & CHR$(10)) 
oTextoutputStream.writeString("VERSION:2.0" & CHR$(13) & CHR$(10)) 
oTextoutputStream.writeString("PRODID:-//Posteo Webmail//NONSGML Calendar//EN" & CHR$(13) & CHR$(10)) 
oTextoutputStream.writeString("X-WR-Timezone: Europe/Berlin" & CHR$(13) & CHR$(10)) 

' dann kommen die Termine....
' Ende des Makros:

oTextoutputStream.writeString("END:VCALENDAR" & CHR$(13) & CHR$(10)) 

oTextoutputStream.closeOutput()
end sub

Re: ics-Datei mit Makro erstellen - Ausgabe in utf-8 Format

Verfasst: Fr 6. Sep 2019, 18:35
von pbES
super, vielen Dank!

Aber jetzt kommt's: Wie kommt man da drauf? Oder noch prinzipieller: Ich hab den Unterschied zwischen utf-8 und ANSI nicht verstanden, was hat's mit den CHR$(13) & CHR$(10) auf sich... Bzw. wo kann man sich da einlesen? Ich freue mich auf ein paar Tips.

Gruß Petra

Re: ics-Datei mit Makro erstellen - Ausgabe in utf-8 Format

Verfasst: Fr 6. Sep 2019, 19:08
von musikai
Hi,
pbES hat geschrieben:
Fr 6. Sep 2019, 18:35
Wie kommt man da drauf?
Tja, hatte mal ein ähnliches Problem und dann das internet durchforstet und in irgendeinem Forum gefunden.
& CHR$(13) & CHR$(10) ist der Zeilenumbruch am Ende der Zeilen.

also für macros allgemein schaue ich immer hier nach:
http://www.pitonyak.org/oo.php
Deutsche Version des Buches "Macros explained":http://www.uni-due.de/~abi070/count.php ... eutsch.pdf

Re: ics-Datei mit Makro erstellen - Ausgabe in utf-8 Format

Verfasst: Fr 6. Sep 2019, 19:24
von pbES
Vielen Dank nochmal. Dann ist ja erst mal für Lesestoff gesorgt :-)