[gelöst] UTF-8

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

[gelöst] UTF-8

Beitrag von F3K Total »

Guten Abend,

folgendes Problem:
Per Makro erstelle ich aus einer Datenbank eine Playlist für den Windows-Media-Player.
Funktioniert gut. Die Syntax der Playlist bekomme ich 1:1 so hin wie es sein muß.
Ich schreibe sie

Code: Alles auswählen

f = FreeFile()
Open <sFileURL> for output as #f
Print #f, srow1
Print #f, srow2
Print #f, srow3
u.
s.
w.
.
.
.
close #f
zeilenweise auf die Platte.
Das Problem sind die Sonderzeichen.
Der oben angegebene Befehl schreibt das Textfile im Ansi-Format heraus, mit Notepad++ geöffnet und nach "UTF-8" konvertiert, funktioniert die Playlist dann auch mit Ü,Ä,Ö usw.
Hat jemand eine Idee, wie ich das Textfile direkt in "UTF-8" auf die Platte bringe?

Beste Grüsse von Rik
Zuletzt geändert von F3K Total am Mi, 11.01.2012 21:17, insgesamt 1-mal geändert.
Frieder D.
****
Beiträge: 115
Registriert: Di, 10.01.2012 10:51
Kontaktdaten:

Re: UTF-8

Beitrag von Frieder D. »

Hallo Rik

Die einzige Idee, die ich im Moment dazu habe ist, dass du die liste Per Makro in eine Calc-Tabelle Schreibst (mit nur einer Spalte), und diese dann alsCSV-Datei per Makro exportierst.
(Siehe http://www.starbasicfaq.de/filteroption ... eroptionen)
Dort kannst du UTF-8 als filter angeben.
Oder du importierst die fertige txt- Datei, und exportierst sie wieder mit dem entsprechenden Filter.

Gruß Frieder
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: UTF-8

Beitrag von F3K Total »

Hallo,
danke für die Antwort.
ich habe es inzwischen über den Writer-Umweg gelöst, klappt einwandfrei, siehe unten:

Code: Alles auswählen

Dim FileProperties(2) As New com.sun.star.beans.PropertyValue 
FileProperties(0).Name = "FilterName"
FileProperties(0).Value ="Text (encoded)"
FileProperties(1).Name = "FilterOptions"
FileProperties(1).Value ="ISO_8859_1,CRLF,,,"
FileProperties(2).Name = "Hidden"
FileProperties(2).Value = True

document = StarDesktop.loadComponentFromURL(sFileURL, "_blank", 0, FileProperties())

Dim FileProperties1(1) As New com.sun.star.beans.PropertyValue 
FileProperties1(0).Name = "FilterName"
FileProperties1(0).Value ="Text (encoded)"
FileProperties1(1).Name = "FilterOptions"
FileProperties1(1).Value ="UTF8,CRLF,,,"

document.storeASURL(sFileURL, FileProperties1())
document.close(-1)
Beste Grüße von Rik
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: [gelöst] UTF-8

Beitrag von DPunch »

Aloha

Eine Alternative wäre das Verwenden der empfohlenen I/O-Funktionen

Code: Alles auswählen

	sPath = ConvertToURL("D:\writf.txt")
	sText = "äöüß"
	
	oFileAccess = CreateUnoService("com.sun.star.ucb.SimpleFileAccess")
	oOutputStream = oFileAccess.openFileWrite(sPath)
	
	oFileWrite = createUnoService("com.sun.star.io.TextOutputStream")
	oFileWrite.OutputStream = oOutputStream
	oFileWrite.writeString(sText)
	oFileWrite.closeOutput
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: [gelöst] UTF-8

Beitrag von F3K Total »

Hallo DPunch,

das ist super! Klappt!
Mach ich so!
Danke!

Beste Grüsse von Rik
Antworten