Textdatei wird nciht überschrieben

Gast #4450213
Lesenswert?
• ▲
▼
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;


}
#4450265
Lesenswert?
• ▲
▼
Tom schrieb:
>>Programmiersprache:C
> Das ist weder C noch C++.

Richtig, es ist Microsoft C++/CLI. Warum sich jemand das antut ist mir 
rätselhaft. Entweder richtiges C++ oder richtiges C# und nicht so ein 
komischer Mischmasch aus den beiden. Aber vielleicht ist es ja für die 
Hausaufgabe des Themenerstellers so vorgegeben. Dann sollte man den 
Dozenten seines Amtes entbinden ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren