Gast
#4450213
Hallo,
da ich in der Welt der Programmierung relativ neu bin würde ich mich
freuen, wenn ihr mir bei folgendem Problem helfen würdet:
Programmiersprache:C
ich will Daten aus meinem Array "data" in eine Textdatei schreiben.
Das klappt mir auch.
Nur wenn ich die Textdatei im Zielordner danach nicht wieder lösche,
überschreibt er diese nicht mit neuen Daten nachdem der data-Array mit
neuen Daten gefüllt ist ....
Der Quellcode ( nur ein Teil davon):
double AnalogRead (void)
{
int32 error=0;
TaskHandle taskHandle=0;
int32 read;
float64 data[1000];
char errBuff[2048]={'\0'};
int i;
int u;
int p;
float data_time[1000];
String ^dateiname="..\\Sinus.txt";
FileStream ^fs=nullptr;
StreamWriter ^sw =nullptr;
// DAQmx analog voltage channel and timing parameters
DAQmxErrChk (DAQmxCreateTask("", &taskHandle));
DAQmxErrChk(DAQmxCreateAIVoltageChan(taskHandle, "Dev3/ai0", "",
DAQmx_Val_Cfg_Default, -10.0, 10.0, DAQmx_Val_Volts, NULL));
DAQmxErrChk(DAQmxCfgSampClkTiming(taskHandle, "", 10000.0,
DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, 1000));
// DAQmx Start Code
DAQmxErrChk(DAQmxStartTask(taskHandle));
// DAQmx Read Code
DAQmxErrChk(DAQmxReadAnalogF64(taskHandle, 1000, 10.0,
DAQmx_Val_GroupByChannel, data, 1000, &read, NULL));
// Stop and clear task
if( read>1 )
printf("Acquired %d samples\n",read);
i=0;
for(i=0;i<read;i++)
{
cout<<data[i]<<endl;
}
printf("--------------\n");
p=0;
for(p=0;p<read;p++)
{
data_time[p]=p/10000.0;
}
try
{
fs= gcnew FileStream(dateiname,FileMode::Append);
sw= gcnew StreamWriter(fs);
u=0;
for(u=0;u<read;u++)
{
sw->WriteLine ("{0} {1}",data[u],data_time[u]);
}
}
catch(Exception ^e)
{
Console::WriteLine(e->Message);
}
finally
{
if(sw)
sw->Close();
}
Console::WriteLine();
Error:
if( DAQmxFailed(error) )
DAQmxGetExtendedErrorInfo(errBuff,2048);
if( taskHandle!=0 ) {
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
}
if( DAQmxFailed(error) )
printf("DAQmx Error: %s\n",errBuff);
return 0;
}