hallo zusammen
ich hab folgender code geschrieben der mir zeilenweise etwas ausliest aus einer datei, einige stellen replaced und danch jede zeile wieder in einem output schreibt.
das problem ist das das output file zwar generiert wird aber immer leer bleibt.
was ist hier falsch?
in der variable result1 steht genau das was ich will. ich müsste diese nur ins file schreiben.
FileStream fs = new FileStream("c:\\Temp\\C_EXPRICE.CSV", FileMode.Open);
StreamReader sr = new StreamReader(fs);
StreamWriter sw;
sw = File.AppendText("c:\\Temp\\output.txt");
string line = "";
int lineNo = 0;
do
{
line = sr.ReadLine();
if (line != null)
{
string strline = line;
string strTimeOrig = Right(strline,4);
int rowlength = strline.Length;
string strDateOrig = Mid(strline, rowlength - 13, 8);
string result = strline.Replace(Right(strline, 4), txtTargetTime.Text);
string result1 = result.Replace(Mid(strline, rowlength - 13, 8), txtTargetDate.Text);
sw.WriteLine(result1);
lineNo++;
}
} while (line != null);
sw.Close();
gruss und danke
w1z4rd2003
Hast du dir mal "result1" auf der Konsole ausgeben lassen?
Eigentlich sollte das gehen, wenn die Variable wirklich befüllt ist.
Hab grad folgenden Code Probiert:
StreamWriter sw = File.AppendText("C:\\Temp\\output.txt");
sw.WriteLine("Hallo");
sw.Close();
Ging auch.
Ansonsten kannste ja auch mal Probieren:
StreamWriter sw = new StreamWriter(new FileStream("C:\\temp\\output.txt", FileMode.Append));
sw.WriteLine("Hallo");
sw.Close();
mfg
Also ich habe den Code mal übernommen und getestet, habe dabei jedoch die Stringbearbeitungen ausgelassen.
Der Code ans ich funktioniert, also liegt der Fehler darin das deine Bearbeitung vom String ihn anscheinden so verändert das das Result am Ende leer ist.
PS.:
your fragile folded wings
are just tired from the pure blue sky
you dont have to force your smiles for anyone
its okay to smile...for yourself
Vllt. auch wichtig, mal in VS Debugger->Ausnahmen->Common Langauge Runtime Exception einen haken setzen. Deine oder vom System geworfen Exceptions werden nicht abgefangen und der Debugger springt sofort. Wichtig bei falsch platzierten Try/catch Anweisungen
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Flush wird automatisch bei einem Close gemacht und das ist vorhanden (solange keine Exception auftritt)
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
hallo zusammen
danke für die antworten.
habe es immer während dem dubuggen angeschaut und es war leer, auch nach mehreren durchläufe 😒 komisch.
wenn ich es ganz durchlaufen lasse mit F5 wird es geschrieben.
gruss
w1z4rd2003
hallo zusammen
wenn ich es ganz durchlaufen lasse mit F5 wird es geschrieben.
Das ist ja auch Logisch. Denn wie kleines_eichhoernchen schon sagt, arbeitet das Close()
bei dem StreamWriter wie ein Flush.
Das bedeutet, das alles in einem Rutsch geschrieben wird was du vorher deiner StreamWriter Variablen zugewiesen hast.
Vorher passiert an deiner Textdatei nix.
Gruß,
TriB