naheliegend
Level-1
- Beiträge
- 87
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Code:
fbWriter : FB_CSVMemBufferWriter;
nRow: INT := 1;
sCSVField : ARRAY [1..iSizeOfValueArray] OF T_MaxString;
sCSVLine : ARRAY [1..1000000000] OF BYTE;
str_Power: STRING;
aValueArray : ARRAY [1..iSizeOfValueArray] OF LREAL;
Code:
WHILE nRow <= iSizeOfValueArray DO //nRow wurde oben auf 1 gesetzt
aValueArray[nRow] := nRow + 0.11; //Beispiel aValueArray mit Werten füllen
str_Power:=LREAL_TO_STRING(aValueArray[nRow]); //LREAL WERT ZU STRING VERWANDELN
sCSVField[nRow] := STRING_TO_CSVFIELD( str_Power, FALSE );(* TODO: Get field value from your application *) // STRING IN CSVFIELD VERWANDELN
nRow := nRow +1;
END_WHILE //
[B] fbWriter[/B]( pBuffer := ADR( sCSVLine ), cbBuffer := SIZEOF( sCSVLine ), putValue := '', pValue := ADR(sCSVField), cbValue := SIZEOF(sCSVField[1]),
bCRLF := TRUE);(* bCRLF == TRUE => Write CRLF after the last field value *)
IF [B]fbWriter.bOk[/B] THEN
fbWriter.eCmd := eEnumCmd_Next;(* Write next field value *)
ELSE(* Error *)
RETURN;
END_IF
Hi, wieso funktioniert mein fbWriter nicht? Ich übergebe mit pValue := ADR(sCSVField) einen Array of STRINGs aus dem STRING_TO_CSV FB.
Infosys: fbWriter aka FB_CSVMemBufferWriter: ( https://infosys.beckhoff.de/index.p...PlcLibUtilities_FB_CSVMemBufferWriter.htm&id= )
Also fb.Writer.bOk meldet auch ein FALSE, weswegen da irgendwas schief läuft. Finde den Fehler aber nicht...
Ich denke der Fehler liegt im pValue, dass ich durch sCSVField, irgendwas falsches übergeben...
pValue: Optional: Adresse eines externen Bytepuffers in dem sich das neue Datenfeld befindet. Zusammen mit dem cbValue-Parameter kann dieser Eingang dann benutzt werden wenn z.B. ein Datenfeld mit Steuerzeichen oder Binärdaten in den Datensatz geschrieben werden soll. Die Steuerzeichen oder Binärdaten im Datenfeld könnten den putValue-String an einer ungewünschten Stelle abschneiden und werden deshalb als Bytepuffer übergeben. Dieser Eingang muss den Wert Null haben wenn er nicht benutzt wird.