Abfrageanwendung: StreamWriter schreibt nicht in Datei

9

Ich schreibe ein Programm für die Schule, also möchte ich nicht, dass jemand es für mich repariert, aber wenn jemand darauf hinweisen könnte, wo er den Fehler sieht, wäre das wirklich hilfreich! : D

Das Programm soll eine Reihe von Zahlen in einem Textfeld aufnehmen, wobei der Benutzer nach jedem Integer-Eintrag die Eingabetaste drückt. Wenn er Enter drückt, schreibt die Zahl in eine Datei, so dass jede Zahl durch ein Komma getrennt ist . Wenn der Benutzer auf die Schaltfläche "Fertig" klickt, werden die Schaltfläche und das Textfeld deaktiviert. Anschließend werden eine neue Schaltfläche und ein Listenfeld aktiviert. Der Benutzer kann die Ergebnisschaltfläche auswählen, um im Listenfeld die Häufigkeit der Zahlen zu sehen, die in das Textfeld eingegeben wurden.

Ich denke, dass das meiste davon richtig funktioniert, außer dass es nicht wirklich in die Datei schreibt. Das ist nur mein erstes Jahr, also bin ich ziemlich neu dabei, aber aus welchen Informationen ich das alles richtig sehe.

Wenn jemand darauf hinweisen könnte, wo ich wieder nach einem Fehler suchen sollte, würde ich das wirklich schätzen! Hier ist mein Code:

%Vor%     
Melissa Grouchy 16.04.2015, 11:52
quelle

3 Antworten

3

StreamWriter (und StreamReader) sind gepuffert. IO-Operationen sind typischerweise viel langsamer als die Arbeit im Speicher, so dass Dateien oft in Blöcken gelesen und geschrieben werden.

Wenn Sie nur einen kleinen Betrag mit einem StreamWriter schreiben, erhalten Sie das Verhalten, das Sie hier sehen können.

Die von Ihnen geschriebenen Informationen wurden in den StreamWriters-Puffer geschrieben, sie werden erst auf der Festplatte angezeigt, wenn Sie% co_de den Puffer oder den Stream geschlossen haben.

    
James Barrass 16.04.2015 12:00
quelle
1

Ich empfehle Ihnen, "using" für streamwriter zu verwenden. Wenn Sie mehrere Dateien schreiben, sollten Sie diese am Ende schließen.

  

Verwenden. Die using-Anweisungen in den Beispielen öffnen und bereiten die Dateien vor. Am Ende der Aussagen schließen sie und entsorgen die Ressourcen. Wenn Ihr Programm viele Schreibvorgänge ausführt, werden die Systemressourcen ordnungsgemäß verwaltet, wenn Sie die Verwendung verwenden.

Hier finden Sie ein grundlegendes Tutorial. Ссылка

    
Kjenos 16.04.2015 12:08
quelle
0

Okay, also was ich hier repariert habe, um es zum Laufen zu bringen, war:

Wie gesagt, habe ich Flush () hinzugefügt; nach dem Schreiben der Datei.

Ich habe meine foreach-Schleife in eine for-Schleife geändert, um die Variable x auf 0 zu initialisieren, weil sie bei 1 anfängt.

Ich habe auch die Aussage

hinzugefügt %Vor%

in der Forloop, so dass es die nächste Nummer in der Datei nach dem Überprüfen der vorherigen gelesen hat.

Ich bin sicher, dass es noch einige andere Dinge gibt, die ich hinzufügen oder ändern könnte, um effizienter zu werden, aber ich bin ziemlich neu in all dem, und das ist es, was mein Kurs von mir verlangt. Wenn Sie einige dieser Änderungen noch erwähnen möchten, um anderen Leuten zu helfen, die sich später damit befassen könnten, fühlen Sie sich frei:)

Danke für Ihre Beiträge! Ich schätze die Hilfe! Prost!

    
Melissa Grouchy 16.04.2015 14:17
quelle

Tags und Links