cewiethemaster
Goto Top

C-Sharp in txt schreiben und daraus lesen

Hi.

Ich will eine TXT Datei einlesen, doch ich hab ein Problem.

Mein Code:


Klasse: TextDatei
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
117
118
119
120
using System;
using System.IO;

class TextDatei
{
    ///<summary>
    /// Liefert den Inhalt der Datei zurück.
    ///</summary>
    ///<param name="sFilename">Dateipfad</param> 
    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;
    }

    ///<summary>
    /// Schreibt den übergebenen Inhalt in eine Textdatei.
    ///</summary>
    ///<param name="sFilename">Pfad zur Datei</param> 
    ///<param name="sLines">zu schreibender Text</param> 
    public void WriteFile(String sFilename, String sLines)
    {
        StreamWriter myFile = new StreamWriter(sFilename);
        myFile.Write(sLines);
        myFile.Close();
    }

    ///<summary>
    /// Fügt den übergebenen Text an das Ende einer Textdatei an.
    ///</summary>
    ///<param name="sFilename">Pfad zur Datei</param> 
    ///<param name="sLines">anzufügender Text</param> 
    public void Append(string sFilename, string sLines)
    {
        StreamWriter myFile = new StreamWriter(sFilename, true);
        myFile.Write(sLines);
        myFile.Close();
    }

    ///<summary>
    /// Liefert den Inhalt der übergebenen Zeilennummer zurück.
    ///</summary>
    ///<param name="sFilename">Pfad zur Datei</param> 
    ///<param name="iLine">Zeilennummer</param> 
    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;
    }

    /// <summary>
    /// Schreibt den übergebenen Text in eine definierte Zeile.
    ///</summary>
    ///<param name="sFilename">Pfad zur Datei</param> 
    ///<param name="iLine">Zeilennummer</param> 
    ///<param name="sLines">Text für die übergebene Zeile</param> 
    ///<param name="bReplace">Text in dieser Zeile überschreiben (t) oder einfügen (f)</param> 
    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();
    }
}

Form: Form1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public partial class Form1 : Form
    {


       public Form1()
        {
            InitializeComponent();
        }

       private void Form1_Load(object sender, EventArgs e)
       {
           TextDatei c_textdatei = new TextDatei();
       }

       private void timeResync_Tick(object sender, EventArgs e)
       {
           //Einlesen einer Datei
           string fs = c_textdatei.ReadFile(@"c:\text.txt");  
       }
    }

Er sagt immer, dass er C_textdatei nciht kennt face-sad

Was ist falsch?

LG

Content-ID: 172018

Url: https://administrator.de/forum/c-sharp-in-txt-schreiben-und-daraus-lesen-172018.html

Ausgedruckt am: 13.04.2025 um 22:04 Uhr

Berrnd
Berrnd 24.08.2011 um 21:38:49 Uhr
Goto Top
Hi,

na wenn du dem Compiler nicht sagst wer c_textdatei ist, dann weiß er das auch nicht. ;)

Ich denke mal c_textdatei sollte ein Objekt deiner Klasse TextDatei sein? Also einfach an entsprechender Stelle ein
TextDatei c_textdatei = new TextDatei();
Gruß - Bernd
cewiethemaster
cewiethemaster 24.08.2011 um 22:00:29 Uhr
Goto Top
Hi.

ich hab doch in Form1 schon

1
2
3
4
5
6
7
private void Form1_Load(object sender, EventArgs e) 
11.
       { 
12.
           TextDatei c_textdatei = new TextDatei(); 
13.
       } 
1002-btl
1002-btl 24.08.2011 um 22:31:39 Uhr
Goto Top
Hallo,

liegen beide Ausschnitte des Quellcodes im selben Namespace?
Im Quellcode, den Du gepostet hast, ist das nicht sicher erkennbar.

Gruß
cewiethemaster
cewiethemaster 24.08.2011 um 22:33:42 Uhr
Goto Top
Ja, in Form1 liegen beide im selben namSpace...
noxcry
noxcry 25.08.2011 um 00:38:21 Uhr
Goto Top
Also wenn du in "private void timeResync_Tick" aus einem Objekt lesen willst, dass du in einer anderen Methode erstellt hast, dann ist es klar, dass es nicht geht.
Entweder du übergibtst der "private void timeResync_Tick" die in "Form1_Load" erstellte c_textdatei, oder du definierst das Objekt TextDatei als Membervariable, weißt sie in "Form1_Load" zu und kannst sie somit dann aus "private void timeResync_Tick" lesen.
lg
nox
cewiethemaster
cewiethemaster 25.08.2011 um 08:00:42 Uhr
Goto Top
Hi.

Danke es funtkiniert ;)

Nun hab ich ein weiteres Problem.

Ich will jetzt mittels

1
2
3
4
5
6
private void cmdSubmit_Click(object sender, EventArgs e)
       {
           //Text an eine Datei Anhängen
           TextDatei c_textdatei = new TextDatei();
           c_textdatei.Append(@"C:\test.txt", + Environment.NewLine + txtMessage.Text);  
       }

mit einem Zeilenumbruch einen Text an die datei anhängen.
Da meckert er allerdings:

Fehler 1 Der Operator "+" kann nicht auf einen Operanden vom Typ "string" angewendet werden.

und verweißt auf + Environment.NewLine

Was kann ich da machen?


EDIT: Ich habs jetzt so gelöst

1
2
3
4
5
6
7
private void cmdSubmit_Click(object sender, EventArgs e)
       {
           //Text an eine Datei Anhängen
           TextDatei c_textdatei = new TextDatei();
           string text = Environment.NewLine + txtMessage.Text;
           c_textdatei.Append(@"C:\test.txt", text);  
       }