Nachtrag:
Statt der Basic-Variante zum Schreiben eines Textfiles empfehle ich im
Übrigen die UNO-Variante. Der Code wird dann zwar etwas länger, wäre
aber auch flexibler, insbesondere kannst Du dort das Encoding - also den
Zeichensatz - festlegen:)
Der Codeteil würde dann lauten:
oSFA = createUnoService("com.sun.star.ucb.SimpleFileAccess")
oOutputStream = createUnoService("com.sun.star.io.TextOutputStream")
sUrl = convertToURL("/Verzeichnis" & "/" & "Test.txt")
oDatei = oSFA.OpenFileWrite(sURL)
With oOutputStream
.setOutPutStream(oDatei.getOutPutStream)
.writeString("TestText" & chr(13) & chr(10))
.writeString("Anzahl " & .RowCount & chr(13) & chr(10))
.closeOutput()
end with
Du musst allerdings jede Textzeile selbst mit dem passenden Zeile-Ende
Zeichen versehen - für Windows z.B. chr(13) & chr(10) - WriteString
schreibt in einem fort:) Auch sollte eine schon bestehende Datei vorher
gelöscht werden - und dann neu erzeugt werden - sonst kann es
Überraschungen geben. Die Methode beschreibt nämlich an Anfang so viel,
wie übergeben wird. Hatte die alte Datei mehr Text, so verbleibt der in
der Datei! Na ja, aber das ist ja alles dokumentiert;)
Noch etwas:
Für die Ausgabe von String-Werten aus dem RowSet funktioniert es durch
.Columns(1).Value
statt
.Columns(1).String
Das ist nicht ganz korrekt;) Ein Rowset-Wert hat zwar immer einen
Stringwert (die Repräsentation des Inhalts als String) , nicht aber
einen Value-Wert. Den gibt es tatsächlich nur bei Zahlen und bei
entsprechender Spezifikation der Spalte als "Wert"!
Viele Grüße
Thomas
Am 04.04.2022 um 15:30 schrieb Thomas Krumbein:
Hey Michael,
nimm einfach mal statt der Write - Anweisung die Print-Anweisung. Die
schreibt ohne Hochzeichen.
Wichtig: Der Unterschied zwischen "Write" und "Print" liegt bei dem
Separator!
mit Write #xxx "1","2", "ab" wird der Separator "," übernommen und
Texte in Hochzeichen gesetzt
Ergebnis: "1","2", "ab"
mit Print #xxx "1","2", "ab" wird als Separator eine Anzahl
Leerzeichen verwendet (Blockweises Schreiben), die Textmarker ("")
werden nicht eingefügt.
Ergebnis: 1 2 ab
Viele Grüße
Thomas
Am 04.04.2022 um 13:33 schrieb Hessler, Klaus-Michael:
Hallo,
um in eine Datei zu schreiben nutze ich folgenden Code:
intFileNum = FreeFile
OPEN "/Verzeichnis" & "/" & "Test.txt" FOR OUTPUT AS intFileNum
Write #intFileNum, "TestText"
Write #intFileNum, "Anzahl" & .RowCount
Das klappt prinzpiell, aber leider werden die Zeilen mit
umschließenden "Anführungszeichen" eingetragen; wie funktioniert es
ohne?
Für die Ausgabe von String-Werten aus dem RowSet funktioniert es durch
.Columns(1).Value
statt
.Columns(1).String
Danke, Michael
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.