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

Quelle

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);