🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Bug in der Open for Output/Print-Anweisung?

Alles zur Programmierung im LibreOffice.
Antworten
gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Bug in der Open for Output/Print-Anweisung?

Beitrag von gogo » Mi 5. Mär 2014, 10:20

Hallo zusammen!

könnte jemand das mal testen:

Code: Alles auswählen

iNumber = Freefile
Open "c:\temp\test.txt" for Output as #iNumber
  Print #iNumber, Chr$(13)
  Print #iNumber, Chr$(10)
Close #iNumber
Bei mir werden immer nur Zeilenvorschübe (Chr$(10)) geschrieben niemals Carriage-Returns Chr$(13)!
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Bug in der Open for Output/Print-Anweisung?

Beitrag von karolus » Mi 5. Mär 2014, 15:48

Hallo

Was hast du eigentlich vor, ausser Zeilenvorschübe und Carriagereturns in .txt files zu schreiben ?

Karolus
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Bug in der Open for Output/Print-Anweisung?

Beitrag von gogo » Mi 5. Mär 2014, 17:20

ich habe eine Software, die diese aus LO exportierten Files liest, da müssen einfache \r die Zeilenenden sein.

Ich hab's mittlerweile so gelöst - das ist aber nicht wirklich "elegant" :roll:

Code: Alles auswählen

dim aCC(50)
sCC=""
i=0
Open sMyPath For Output as #iNumber
  sSt = oResultset.getstring(2) & " "
  sCC=sCC & sSt
  aCC(i)=len(sCC)
  Print #iNumber, sSt
  oResultset.beforefirst
  do while oResultset.next
	i=i+1
	sSt = oResultset.getstring(2) & "	" & i & "	U	0	0	0" & " "
	sCC=sCC & sSt
	aCC(i)=len(sCC)+i
	Print #iNumber, sSt
  loop
Close #iNumber

Open sMyPath For Binary as #iNumber
	for ii=0 to i
		put #iNumber,aCC(ii) ,Chr(13)
	next ii
Close #iNumber
msgbox "Murks beendet!"
... d.h. am Ende jeder Zeile steht ein Leerzeichen, nach dem Schreiben jeder Zeile wird die Position dieses Leerzeichens im Array aCC() gespeichert. Nachdem die Datei geschrieben wurde wird sie im Binary-Modus geöffnet, und an den in aCC() gespeicherten Positionen wird mit "put" ein CHR$(13) gesetzt ... :geek:
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Bug in der Open for Output/Print-Anweisung?

Beitrag von karolus » Mi 5. Mär 2014, 18:08

Hallo
Davon kriegt man ja Kopfschmerzen - hast du mal über die Verwendung einer vernünftigen(1) Programmiersprache nachgedacht - oder wenigstens an die Umstellung auf Api-Methoden(2) zum Schreiben der Dateien ?
(1) LO hat eine vollständige Python-umgebung an Bord
(2) com.sun.star.ucb.SimpleFileAccess

Karolus
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Bug in der Open for Output/Print-Anweisung?

Beitrag von gogo » Mi 5. Mär 2014, 19:48

Elefantenjagd - ich bleib' bei dem mit Samt gepolsterten Einspänner - Programmiererzeit ist teuerer als Rechenzeit. Und eine neue Sprache lern' ich wegen eines Carriage-Returns nicht ;)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Bug in der Open for Output/Print-Anweisung?

Beitrag von karolus » Mi 5. Mär 2014, 20:19

Hallo
Programmiererzeit ist teuerer..
Dein oben gezeigter "Murks" [Zitat aus deinem Quelltext] ist ein Gegenargument für diese Aussage.

Beispiel zum Schreiben von Textfiles mit CR:

Code: Alles auswählen

...
with open("c:/bla/blub/beispiel.txt", "w") as txt_datei:
    txt.datei.write( "zeile1\rzeile2\rzeile3\r")
... 
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Bug in der Open for Output/Print-Anweisung?

Beitrag von gogo » Do 6. Mär 2014, 11:01

thx - welche Sprache ist das? - ich nehme mal an Python

Code: Alles auswählen

Open "c:\temp\test.txt" for Output as #iNumber
  Print #iNumber, Chr$(13)
... würde ich vorschlagen - wenn's nicht verbuggt wäre :cry:

oder einfach so:

Code: Alles auswählen

Open sMyPath  For Binary as #iNumber
	for i=1 to len(sText)
		put #iNumber,i , mid(sText,i,1)
	next i
Close #iNumber
Die put-Anweisung schafft's mit dem CHR$(13).
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten