![]() |
Ausgabe Datei erstellen, Frage
Hallo Leute,
an der Uni musste ich ein Program schreiben und dabei bin ich auf ein kleines Problem gestoßen :) Das Programm ist eig schon fertig, läuft schön, habe es mit Visual C++ programiert. Es rechnet bei der Simulation und spuckt dabei Ergebnisse aus, die er als eine "Ergebnis.txt" Datei speichert. Dies habe ich so geschrieben: PHP-Code:
Mein Intervall geht von 0.000001 Sekunde (also eine Microsekunde) bis 1.0 Sekunde. Ist in der Aufgabenstallung vorgegeben. Lieder hat dann die Ergebnisdatei über eine Mio. Zeilen :D und das möchte ich nicht. Gibt es eine Möglichkeit bzw. ein Befehl der mir es ermöglicht, z.b. alle 100 Zeilen in die Ergebnisdatei zu speichern und nicht jede ohne das ich das Intervall ändere, weil es muss bei der Microsekunde bleiben. Vielen Dank im Voraus :) |
Danke ich versuch es dann mal :)
|
Also es geht darum das ich eine Glühlampe simulieren muss, ich hab erst alle Variablen bennant, danach die Formeln aufgstellt, die Spannung, Widerstand, Temperatur des Drahtes usw. berechnen in Abhängigkeit von der Zeit, unzwar im Interwall von
1*10^-6 sekunden bis zur 1 Sekunde. Wenn das Program ein Intervall hinter sich hat, dann wird diese sofort in die Datei gespeichert und das macht er bis er die eine Sekunde erreicht hat. mein t ist halt immer t = t + Intervall. Jetzt habe ich Probleme mit deinem Vorschlag, unzwar weiß ich jetzt nicht gaz was das mit dem "CounterTxtDatei" bedeutet. Wenn ich "ausgabe = fopen("Ergebnis"+ CounterTxtDatei.(String) + ".txt","a");" schreibe dann zeigt er mir en --> Der Ausdruck muss einen Klassentyp aufweisen Habe ich das richtig vertanden mit der If zeile die du mir geschrieben hast, das soll bedeuten, wenn die Zeile größer gleich 1 ist soll der dann die nächte +1 schreiben, richtig? Sry, die Fachsprache der Programierer behersche ich nicht :) Studiere ja auch kein Informatik, ich hab diese Program mit seht viel Aufwand und google geschrieben. Mein Programm spuckt mir ja über 1Mio. Zeilen raus (knapp 180MB), er soll die ja alle berechnen, aber z.b nur jede tausendste speichern. Ich wollte das Intervall ändern indem ich sage er soll nicht jede 1 Microsekunde rechnen sondern jede 100. aber das will der prof nicht -.- |
Nein, er soll mir nicht mehrere Dateien erstellen, sondern in der "Ergebnis" Datei jedes 100. Ergebnis aus der Rechnung speichern und nicht jedes.
Ich sag mal so, mein Program rechnet ich sag mal "1000" Rechnungen und speichert dies in Form von 1000 Zeilen. Ich brauche aber in der Datei nur jede 100. Rechnung oder 10. Rechnung zu speichern und nicht jede einzelne. :) Danke für deine Hilfe :T |
Wenn du nur jede hunderste Zeile speichern möchtest, kannst du den obigen Code einfach wie folgt verwenden.
PHP-Code:
|
Zitat:
PHP-Code:
|
Oje, das war wohl nix ^^
Code:
void gebeAus() { Zaehlerdateizeile muss von dir irgendwo deklariert sein, von selbst schluckt sowas nur das alte Fortran. |
Ja ich das Program macht immer noch das selbe, es speichert immer noch jede Zeile. Ich hab schon nach 1sek. 9MB :D und das Program läuft par Minuten bis es fertig ist.
Ja ich hab Zeahlerdateizeile mit double definiert. Aber ich was es genau ist nicht, nur das es = 0 ist. hier mal das ganze Program: PHP-Code:
|
Zitat:
long Zeahlerdateizeile = 0; |
Zitat:
Ahhhh so einfach! Vielen vielen Dank :T TOP TOP, hätte ich das nur mit "counter" gewusst. Schöne Methode, ist genau das was ich haben wollte. Immerhin sind es jetzt keine 181MB sondern 2.3MB... Ach ja, dadurch das er jetzt alle 100 Schreitte Informationen speichert, speichert er mir am ende nicht die ganze volle Sekunden, sondern nur 0.999901, da fehlen halt die 99 die halt in der "if" schleife defieniert sind, kann man da noch was machen? Möchte ungern das Intervall ändern. |
Zitat:
Hi, erst mal Danke :) also anfangs funktioniert es, doch am Ende springt er iwie über und zeigt mir dann im Terminal 0.999999/1.000000 und am Ende der Ergebnisdatei 0.999901 s an o.O komisch obwohl deine if Schleife eig funktionieren müsste |
Code:
void gebeAus() |
Zitat:
PHP-Code:
|
ja, funktionierts denn?
|
Zitat:
ja es funktioniert genau so wie das obrige davor, hat aber den Vorteil das es kürzer ist. Ich habe den Bereich noch auf 500 erhöt, da 100 Schritte doch zu viel sind (wollte der Prof so) Aber beides funktioniert :) Vielen Dank an alle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.