Makro Basic - Ausgabe in Datei - DoubleVariable via Typ-Deklarationszeichen # - Makro-Fehler-Abbruch

Hallo *,

zufällig bin ich - im Zusammenhang mit einer anderen Angelegenheit - auf folgenden BUG (?) gestoßen:

[1] Deklariert man eine Variable via "Dim DoubleVar1#" und will man den Inhalt dieser Variable in eine Datei ausgeben, erhält man die Fehlermeldung "Fehler: Unzulässiger Wert oder Datentyp.Datentypen unverträglich.".

[2] Deklariert man eine Variable via "Dim DoubleVar2 As Double" funktioniert die Ausgabe in eine Datei fehlerfrei

[3] Das "Print #KanalNr,DoubleVar1#" scheint mit 2 mal # Probleme zu haben ...

Kann das jemand bestätigen ?

Gruß
Hans-Werner :-))

Sub Print_DoubleVar_To_File

Dim Datei As String
Dim KanalNr As Integer

Dim DoubleVar1#
Dim DoubleVar2 As Double

DoubleVar1# = 0.123456789
DoubleVar2 = DoubleVar1#

Print DoubleVar1# ' OKAY
Print DoubleVar2 ' OKAY

Datei = "E:\TMP\HWH.txt" ' Gegebenenfalls anpassen !
KanalNr = Freefile

Open Datei For Output As #KanalNr

Print #KanalNr,DoubleVar2 ' OKAY
' Print #KanalNr,DoubleVar1# ' ERROR "Unzulässiger Wert oder Datentyp.Datentypen unverträglich."

Close #KanalNr

End Sub

Hallo Hans-Werner,

ich kann dir bestätigen, dass die Fehlermeldung kommt. Allerdings denke ich, dass du da etwas falsch verstehst, meiner Meinung nach ist das # nicht Bestandteil des Variablennamens, sondern nur ein Kürzel bei der Deklaration. Wenn man den problematischen Befehl ohne # verwendet (Print #KanalNr,DoubleVar1), wird die Datei ordentlich geschrieben.
Es kommt übrigens eine Warnmeldung, die den Wert der Variablen ausgibt, die nicht aus deinem Code stammt, der bin ich nicht nachgegangen; da sie zweimal kommt, also auch bei dem nicht beanstandeten Befehl, sollte das eine andere Ursache haben.

Herzlichen Gruß
Gerhard

Guten Morgen Gerhard,

ich danke Dir für Dein Feedback. Ich habe mal noch etwas recherchiert und widersprüchlichen Umgang von Variablen mit Typ-Deklarationszeichen festgestellt:

[1] https://de.libreoffice.org/ [Hilfe] [Handbücher] [Kurzanleitungen] [Makroprogrammierung]