Laden...

StreamReader verändert Datei-Inhalt?

Erstellt von f.ritz vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.937 Views
f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 16 Jahren
StreamReader verändert Datei-Inhalt?

Hallo zusammen!

Ich möchte gerne eine Datei, so wie diese ist, für die weitere Verwendung auslesen. Das Problem dabei ist, dass wenn ich die Datei, wie folgt, lese:

StreamReader sr = new StreamReader(@"C:\ts.txt");
string text = sr.ReadToEnd();
sr.Close();

wird aus diesen Datei-Inhalt:

Data : 1.12.06 0:00

1.0000 0.3 117 3.3 100.0 ???.? ???? 0.0 ? ???.? ???.? ???.? ???.? ???.? ???.? 1.12.06 1:00

2.0000 0.4 141 3.3 100.0 ???.? ???? 0.0 ? ???.? ???.? ???.? ???.? ???.? ???.? 1.12.06 2:00

folgender:
Data : 1.12.06 0:00 1.0000 0.3 117 3.3 100.0 ???.? ???? 0.0 ? ???.? ???.? ???.? ???.? ???.? ???.? 1.12.06 1:00 2.0000 0.4 141 3.3 100.0 ???.? ???? 0.0 ? ???.? ???.? ???.? ???.? ???.? ???.?

Merkwürdig! Woran liegt denn das?

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo f.ritz,

Woran liegt denn das?

sicher nicht am Auslesen.

Was meinst du außerdem mit verändern? Dass sich die Original-Datei ändert und anschließen einen anderen Inhalt hat, oder dass das, was du ausgelesen hast, bei der Anzeige anders aussieht, als du erwartest?

Im zweiten Fall würde ich darauf tippen, dass in der Datei nur "\n" und nicht "\r\n" als Zeilentrenner verwendet wird.

herbivore

f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 16 Jahren

Die Original-Datei wird verändert...
Und wenn ich den Text mit Console.Write(text); ausgebe, sieht es auch anders aus als uhrsprünglich in der Datei gespeichert.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo f.ritz,

du musst an einer anderen Stelle suchen. Durch das Lesen wird die Datei sicher nicht geändert.

herbivore

6.862 Beiträge seit 2003
vor 16 Jahren

Also ein StreamReader kann nichts an einer Datei ändern - da hast du bestimmt noch woanders was drin, was schreibend auf die Datei zugreift.

Baka wa shinanakya naoranai.

Mein XING Profil.

f.ritz Themenstarter:in
341 Beiträge seit 2004
vor 16 Jahren

Original von talla
Also ein StreamReader kann nichts an einer Datei ändern - da hast du bestimmt noch woanders was drin, was schreibend auf die Datei zugreift.

Der einzige Code den jetzt habe ist:

static void Main(string[] args)
{
            StreamReader sr = new StreamReader(@"C:\ts.txt");
            string text = sr.ReadToEnd();
            sr.Close();
}

Oder meinst auf der Betriebssystem-Ebene ist was schief?

6.862 Beiträge seit 2003
vor 16 Jahren

Also der Code ändert 100% nichts an der Datei, kein einziges Bit(außer vielleicht das Datum des letzten Zugriffs gg) Dann ist deine Datei vor dem Einlesen wohl schon falsch. Das der Inhalt des Strings im Debugger vielleicht anders aussieht als das was dir nen Texteditor anzeigt ist normal, aber auf der Festplatte kann durch den Code nichts geändert worden sein.

Baka wa shinanakya naoranai.

Mein XING Profil.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo f.ritz,

wenn das der einzige Code deines Programms ist und die Datei auch von keinem anderen Programm geändert wird, dann jagst du ein Phantom. Dann ändert die Datei sich auch nicht. Dann liegt es wohl an einem Fehler in der Art, wie du Unterschiede in der Datei suchst.

herbivore