Laden...

schreiben von Textdateien wird nicht zuende geführt.

Erstellt von Ankou vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.024 Views
A
Ankou Themenstarter:in
119 Beiträge seit 2006
vor 17 Jahren
schreiben von Textdateien wird nicht zuende geführt.

Hi Leute
Ich habe versucht ein bisschen Text in einer Schleife schreiben zu lassen, nun habe ich das Problem dass der Vorgang nach ner Zeit automatisch abbricht.


 private static void CreateField() { 
Source.WriteLine("public enum FieldType : int");
 Source.WriteLine("{");
 Source.WriteLine(" Wiese = 0,");
 Source.WriteLine(" Gebirge = 1");
 Source.WriteLine("}");
 Source.WriteLine("class Field");
 Source.WriteLine("{");
 Source.WriteLine(" public FieldType TypeField");
 Source.WriteLine(" {");
 Source.WriteLine(" set");
 Source.WriteLine(" {");
 Source.WriteLine(" if (value == FieldType.Wiese)");
 Source.WriteLine(" {");
 Source.WriteLine(" graphic = new Bitmap( @\"Wiese2.bmp\");");
 Source.WriteLine(" Type = 1;");
 Source.WriteLine(" }");
 Source.WriteLine(" else if (value == FieldType.Gebirge)"); 
Source.WriteLine(" {");
 Source.WriteLine(" graphic = new Bitmap(@\"Berge.bmp\");"); 
Source.WriteLine(" Type = 2;"); 
Source.WriteLine(" }");
Source.WriteLine(" }");
 Source.WriteLine(" }");
 Source.WriteLine(" public Bitmap graphic = new Bitmap(@\"Wiese2.bmp\");"); 
Source.WriteLine(" public int Type = 0;");
 Source.WriteLine(" public static void SetFields(ref Field[,] field)");
 Source.WriteLine(" {");
 int x, y;
 for (x = 0; x <= RBSGMProperties.Fieldsize.Width -1; x++)
 for (y = 0; y <= RBSGMProperties.Fieldsize.Height - 1; y++)
 {
Source.WriteLine("field[" + Convert.ToString(x) + " ," + Convert.ToString(y) + "].TypeField = " + FieldInformations.Fields[Field.Fields[x, y].TypeID].Fieldtype + ";"); 
}
 Source.WriteLine(" }");
 Source.WriteLine(" }"); } 

wenn ich nun aber die Datei öffne, in die ich geschrieben habe.
dann bricht das irgendwann mittendrin ab und sieht z.B. so aus:
field[27 ,5].TypeField = FieldType.Wiese;
field[27 ,6].TypeField = FieldType.Wiese;
field[27 ,7].TypeField = FieldType.W

abgesehen davon, dass das bis field[28, 28] gehen sollte, sind weder semikolons noch geschweifte Klammern, die folgen sollten in der Textdatei zu finden.

Ist das richtig dass der den Vorgang abbricht?
wie kann ich das ändern?

hoffe ihr könnt mir helfen
Quick

187 Beiträge seit 2005
vor 17 Jahren

LOL, wo sind deine Zeilenumbrüche abgeblieben ^^

Ich sehe da was von WriteLine daher vermute ich, dass der Objektverweis 'Source' ein Objekt vom Typ StreamWriter beinhaltet.

Bei streams darfst du das Flush zum schluss nicht vergessen. Das schreiben der Datei geht nicht so schnell voran wie dein Prog, daher wird der text im arbeitsspeicher zwischengespeichert. wenn du das also nicht flushst, dann wird der puffer gelöscht und die datei ist nicht zu ende geschrieben worden.

daher zum schluss noch:

Source.Flush();
Source.Close();

A
Ankou Themenstarter:in
119 Beiträge seit 2006
vor 17 Jahren

Die Zeilenumbrüche hab ich wohl beim kopieren verloren 😁

Das Flush wars. jetzt funktionierts.
Danke =)