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; }
Bitte vernünftig einrücken, überflüssige Leerzeilen rauswerfen und mit
[ c ] [ /c ] hochladen.
>Programmiersprache:C
Das ist weder C noch C++.
student schrieb: > Programmiersprache:C Nein, das ist C++/CLI. > Nur wenn ich die Textdatei im Zielordner danach nicht wieder lösche, > überschreibt er diese nicht mit neuen Daten Vielleicht wegen FileMode::Append?
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 ;-)
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.