CAPL 写入文本文件

Fik*_*koT 3 capl canoe

我对 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} \n
Run Code Online (Sandbox Code Playgroud)\n\n

我将采样数据存储在“val_arr”数组中。我希望将其写入文本文件中。但是,它总是会覆盖写入的数据。“Save_txt”环境变量执行写入工作。

\n\n

干杯。

\n

Ste*_*Oll 5

这是一个在变量递增时写入变量值的简单示例。

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)