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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.