« SendMail
Textdateien einlesen/auslesen/usw.
Hier mal eine Klasse für das Handling mit Textdateien.
- Einlesen einer Datei
- Schreiben einer Datei
- Text an eine Datei anhängen
- Zeilen einer Datei ersetzen
- Zeilen einfügen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | using System; using System.IO; class TextDatei { /// /// Liefert den Inhalt der Datei zurück. /// /// public string ReadFile(String sFilename) { string sContent = ""; if (File.Exists(sFilename)) { StreamReader myFile = new StreamReader(sFilename, System.Text.Encoding.Default); sContent = myFile.ReadToEnd(); myFile.Close(); } return sContent; } /// /// Schreibt den übergebenen Inhalt in eine Textdatei. /// /// /// zu schreibender Text public void WriteFile(String sFilename,String sLines) { StreamWriter myFile = new StreamWriter(sFilename); myFile.Write(sLines); myFile.Close(); } /// /// Fügt den übergebenen Text an das Ende einer Textdatei an. /// /// /// public void Append(string sFilename, string sLines) { StreamWriter myFile = new StreamWriter(sFilename,true); myFile.Write(sLines); myFile.Close(); } /// /// Liefert den Inhalt der übergebenen Zeilennummer zurück. /// /// /// public string ReadLine(String sFilename, int iLine) { string sContent = ""; float fRow=0; if (File.Exists(sFilename)) { StreamReader myFile = new StreamReader(sFilename, System.Text.Encoding.Default); while (! myFile.EndOfStream && fRow < iLine) { fRow++; sContent = myFile.ReadLine(); } myFile.Close(); if(fRow < iLine) sContent = ""; } return sContent; } /// /// Schreibt den übergebenen Text in eine definierte Zeile. /// public void WriteLine(String sFilename, int iLine, string sLines, bool bReplace) { string sContent = ""; string[] delimiterstring = { "\r\n" }; if (File.Exists(sFilename)) { StreamReader myFile = new StreamReader(sFilename, System.Text.Encoding.Default); sContent = myFile.ReadToEnd(); myFile.Close(); } string[] sCols = sContent.Split(delimiterstring, StringSplitOptions.None); if (sCols.Length >= iLine) { if (!bReplace) sCols[iLine - 1] = sLines + "\r\n" + sCols[iLine - 1]; else sCols[iLine - 1] = sLines; sContent = ""; for (int x = 0; x < sCols.Length-1; x++) { sContent += sCols[x] + "\r\n"; } sContent += sCols[sCols.Length-1]; } else { for (int x = 0; x < iLine - sCols.Length; x++) sContent += "\r\n"; sContent += sLines; } StreamWriter mySaveFile = new StreamWriter(sFilename); mySaveFile.Write(sContent); mySaveFile.Close(); } } |
Wie verwende ich diese Klasse?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | TextDatei c_textdatei = new TextDatei(); //Einlesen einer Datei string fs = c_textdatei.ReadFile(@"c:\text.txt"); //Schreiben einer Datei c_textdatei.WriteFile(@"C:\text.txt", "Hallo Welt!"); //Text an eine Datei Anhängen c_textdatei.Append(@"C:\text.txt", "Hallo Welt!"); //Zeilen einer Datei ersetzen c_textdatei.WriteLine(@"C:\text.txt", 2, "neuer Text für diese Zeile", true); //Zeilen in eine Datei einfügen c_textdatei.WriteLine(@"C:\text.txt", 2, "eine eingefügte Zeile", false); |

:biggrin: