Friday, May 7, 2010

Save Data ke CSV / TXT

Untuk save data dari InTouch ke CSV / TXT, bisa menggunakan script filewritemessage.

Syntax
[result = ] FileWriteMessage (filename, offset, messagetag, linefeed)

Parameters
filename:
Name of the file to write the data to. A literal string value, a message tagname, or a string expression.

offset:
Location (in bytes) in the file to start writing to. Set it to -1 to write data to the end of the file (append). A literal integer value, integer tagname, or integer expression.

messagetag:
Message tagname that contains the data to be written to the file.

linefeed:
Specifies whether to write a line feed (LF) character after writing the data to the file. Set to 1 to write a line feed character; otherwise, set it to 0. A literal Boolean value, discrete tagname, or Boolean expression.

Example(s)
This script writes the value of a message tagname MsgTag to the end of the file c:\Data\File.txt.

FileWriteMessage("c:\Data\File.txt",-1,MsgTag,1);


Yang perlu diperhatikan, script ini hanya bisa save data dalam bentuk message.
Pertanyaannya, bagaimana save data non message, misalkan integer, real?

Bisa menggunakan konversi, data integer / real kita konversi terlebih dahulu ke string dengan menggunakan script.

Script untuk konversi dari integer ke string:

Syntax
result = StringFromIntg (number, base)

Parameters
number:
A literal integer value, integer tagname, or integer expression.

base:
The base of the conversion. This is used for converting the value to a different base, such as binary (2), decimal (10) or hexadecimal (16). A literal integer value, integer tagname, or integer expression.

Example(s)
StringFromIntg(26,10) returns “26” (decimal).


Contoh kasus:
Kita ingin save nilai sebuah tagname integer ke csv file, misalkan nama tagname: level

Langkah yang dilakukan secara umum:
  • konversi tagname integer ke string
  • save nilai tagname ke file
script:
{bikin variabel lokal untuk menyimpan sementara nilai hasil konversi}
Dim temp_level as message;

{konversi dari integer ke string, hasilnya disimpan ke variabel lokal temp_level}
temp_level = stringfrominteger(level,10);

{simpan ke file.csv}
FileWriteMessage("c:\report.csv",-1,temp_level,1);