[Frage] Smartpart OPEN/OUTPUT [Gelöst]

Schlagworte:
  • Smartparts
  • OPEN
  • OUTPUT
  • Fehler
  • Plugin-Download

Schönen Tag.

Ich wollte mit dem OUTPUT-Befehl über mein SmartPart-Skript eine csv.-Tabelle befüllen bzw. erweitern.
Den Stream öffne ich mit OPEN. Wenn ich jedoch nun Versuche den OUTOUT Befehl anzuwenden kommt eine Fehlermeldung (siehe Anhang).
Ich habe mich aber an den Syntax gehalten.
OUTPUT channel, recordID, fieldID, expression1 [, expression2, ...]
Wo liegt hier der Fehler?

Code:
----------------------------------------------------------------------------------

filesave = "C:\Users\SL\Desktop\OUTPUT\2020-12-21_Test.csv"
testoutput = 10

!!!---datalink
IF filesave <> "" THEN
!!--open stream
stream = OPEN ( "TEXT" , filesave , "SEPARATOR = ';', MODE = WO, fullpath" )
!!--put in values
OUTPUT ( stream , 1 , 0 , testoutput )
CLOSE stream
ENDIF
----------------------------------------------------------------------------------

Anhänge (1)

Typ: image/png
24-mal heruntergeladen
Größe: 1,43 KiB

Lösung anzeigen Lösung verbergen

Anbei ein Beispiel zum Lesen und Schreiben von CSV-Dateien.
Ist etwas älter, aber es zeigt die grundsätzliche Vorgehensweise.

Copy and Paste, please!

Anhänge (1)

Typ: text/xml
1159-mal heruntergeladen
Größe: 60,99 KiB
1 - 10 (16)

Hello,

"testoutput" must be a string.
So change it to:

testoutput = "10"

___________

"testoutput" muss eine Zeichenfolge sein.
Ändern Sie es also in:

testoutput = "10"


Hi Bertrand!

Even if I declare testoutput as a string, the error still occurs...

Anhänge (1)

Typ: image/png
71-mal heruntergeladen
Größe: 45,17 KiB

The problem is in line 10 and not in line 12.
It seems to be ';' (wrote in black instead of red).
I guess that ";" is not allowed. Try with "," or "\t" (for Tab).


Or maybe try this:

"SEPARATOR = '" + ";" + "', MODE = WO, fullpath"


OUTPUT braucht KEINE Klammern!

Hier die angezeigte Syntaxhilfe. Einfach mal lesen!

OUTPUT writes data into an external database text file.

Syntax
OUTPUT channel, recordID, fieldID, expression1 [, expression2, ...]

Parameters
channel: the channel which was opened with OPEN.
recordID (numerical or string): the string or numeric ID of the starting position of the writing.
fieldID (integer 0 or 1): 1 creates or modifies an entry, 0 deletes an existing line.
expression (string): Writes as many values into the file identified by the channel value from the given position as there are defined expressions. There has to be at least one expression. The type of values is the same as those of the expressions.
Usable since script version 1.3 (Allplan 2013-1).

Danke! Die Klammern war ich wohl noch von INPUT gewöhnt das tut mir leid..
Die Fehlermeldung kommt nicht mehr, aber funktioniert hat es immer noch nicht!

Anhänge (1)

Typ: image/png
56-mal heruntergeladen
Größe: 54,60 KiB

Anbei ein Beispiel zum Lesen und Schreiben von CSV-Dateien.
Ist etwas älter, aber es zeigt die grundsätzliche Vorgehensweise.

Copy and Paste, please!

Anhänge (1)

Typ: text/xml
1159-mal heruntergeladen
Größe: 60,99 KiB

Danke für das Beispiel!

Einmal muss ich noch nachhaken!

Wäre es möglich eine CSV-Tabelle zu lesen und anschließend darauf zu schreiben?
Der Gedanke wäre folgender:

Zu Beginn des Smartpart Skripts wird eine Tabelle gelesen und an die Parameter übergeben - dies soll bei jedem Öffnen des Smartparts erfolgen.
Anschließend möchte ich jedoch die Möglichkeit haben per GLOB_UI_BUTTON_ID dieser CSV-Tabelle Daten hinzuzufügen.

Wenn ich auf die bereits gelesene Datei zugreifen möchte kommt nur die Fehlermeldung
File is opened for read only

Gibt es da eine Lösung oder einen Umweg?

1 - 10 (16)