我对 CAPL 语言还很陌生。因此,我在将数据写入 .txt 文件时遇到问题。这是我写的代码:
\n\n includes\n{\n\n}\n\nvariables\n{\n message Generate_Num Gen;\n message Logger Logs;\n msTimer tim_100ms;\n msTimer tim_500ms;\n int time_over; // 500 ms flag.\n dword handle=0;\n float val=0;\n long index=0;\n int val_arr[512];\n}\n\non start \n{\n time_over=0; \n setWritePath("C:\\\\Users\\\\T\xc3\xbcrker\\\\Desktop\\\\soft_pro");\n handle= openFileWrite("Log.txt",1);\n Gen.Num_Data=1;\n}\n\non envVar Logger_Sw\n{ \n\n if(@this)\n {\n setTimer(tim_500ms,500);\n setTimer(tim_100ms,100);\n }\n else\n {\n cancelTimer(tim_500ms);\n cancelTimer(tim_100ms);\n }\n\n}\n\non envVar Save_txt\n{ \n if(@Save_txt==1)\n {\n int i;\n float val_n;\n for(i=0;i<elcount(val_arr);i++)\n {\n val_n=val_arr[i];\n writeProfileFloat("1","1",val_n,"Log.txt");\n }\n } \n}\n\non timer tim_100ms\n{\n output(Gen);\n Gen.Num_Data++; \n setTimer(tim_100ms,100);\n}\n\non message Generate_Num\n{\n if(time_over==1)\n {\n val=this.Num_Data;\n val_arr[index]=val; \n Logs.Logged_Val=val;\n output(Logs);\n index++; \n time_over=0;\n }\n\n}\n\non timer tim_500ms\n{\n time_over=1;\n setTimer(tim_500ms,500);\n} \nRun Code Online (Sandbox Code Playgroud)\n\n我将采样数据存储在“val_arr”数组中。我希望将其写入文本文件中。但是,它总是会覆盖写入的数据。“Save_txt”环境变量执行写入工作。
\n\n干杯。
\n这是一个在变量递增时写入变量值的简单示例。
variables
{
dword logFile; // logfile handle
int i;
char results[1024]; // store our formatted string
}
on start
{
setFilePath("C:\\Demo\\Results", 2); // 2 = read & write
logFile = openFileWrite("Results.txt", 2); // 2 = append file
for (i = 0; i < 10; i++ )
{
snprintf(results, 1024, "The value of 'i' is %d\n", i);
filePutString(results, 1024, logFile);
}
fileClose(logFile);
}
Run Code Online (Sandbox Code Playgroud)