gelöst C-Sharp in txt schreiben und daraus lesen
Hi.
Ich will eine TXT Datei einlesen, doch ich hab ein Problem.
Mein Code:
Klasse: TextDatei
Form: Form1
Er sagt immer, dass er C_textdatei nciht kennt
Was ist falsch?
LG
Ich will eine TXT Datei einlesen, doch ich hab ein Problem.
Mein Code:
Klasse: TextDatei
01.
using System;
02.
using System.IO;
03.
04.
class TextDatei
05.
{
06.
///<summary>
07.
/// Liefert den Inhalt der Datei zurück.
08.
///</summary>
09.
///<param name="sFilename">Dateipfad</param>
10.
public string ReadFile(String sFilename)
11.
{
12.
string sContent = "";
13.
14.
if (File.Exists(sFilename))
15.
{
16.
StreamReader myFile = new StreamReader(sFilename, System.Text.Encoding.Default);
17.
sContent = myFile.ReadToEnd();
18.
myFile.Close();
19.
}
20.
return sContent;
21.
}
22.
23.
///<summary>
24.
/// Schreibt den übergebenen Inhalt in eine Textdatei.
25.
///</summary>
26.
///<param name="sFilename">Pfad zur Datei</param>
27.
///<param name="sLines">zu schreibender Text</param>
28.
public void WriteFile(String sFilename, String sLines)
29.
{
30.
StreamWriter myFile = new StreamWriter(sFilename);
31.
myFile.Write(sLines);
32.
myFile.Close();
33.
}
34.
35.
///<summary>
36.
/// Fügt den übergebenen Text an das Ende einer Textdatei an.
37.
///</summary>
38.
///<param name="sFilename">Pfad zur Datei</param>
39.
///<param name="sLines">anzufügender Text</param>
40.
public void Append(string sFilename, string sLines)
41.
{
42.
StreamWriter myFile = new StreamWriter(sFilename, true);
43.
myFile.Write(sLines);
44.
myFile.Close();
45.
}
46.
47.
///<summary>
48.
/// Liefert den Inhalt der übergebenen Zeilennummer zurück.
49.
///</summary>
50.
///<param name="sFilename">Pfad zur Datei</param>
51.
///<param name="iLine">Zeilennummer</param>
52.
public string ReadLine(String sFilename, int iLine)
53.
{
54.
string sContent = "";
55.
float fRow = 0;
56.
if (File.Exists(sFilename))
57.
{
58.
StreamReader myFile = new StreamReader(sFilename, System.Text.Encoding.Default);
59.
while (!myFile.EndOfStream && fRow < iLine)
60.
{
61.
fRow++;
62.
sContent = myFile.ReadLine();
63.
}
64.
myFile.Close();
65.
if (fRow < iLine)
66.
sContent = "";
67.
}
68.
return sContent;
69.
}
70.
71.
/// <summary>
72.
/// Schreibt den übergebenen Text in eine definierte Zeile.
73.
///</summary>
74.
///<param name="sFilename">Pfad zur Datei</param>
75.
///<param name="iLine">Zeilennummer</param>
76.
///<param name="sLines">Text für die übergebene Zeile</param>
77.
///<param name="bReplace">Text in dieser Zeile überschreiben (t) oder einfügen (f)</param>
78.
public void WriteLine(String sFilename, int iLine, string sLines, bool bReplace)
79.
{
80.
string sContent = "";
81.
string[] delimiterstring = { "\r\n" };
82.
83.
if (File.Exists(sFilename))
84.
{
85.
StreamReader myFile = new StreamReader(sFilename, System.Text.Encoding.Default);
86.
sContent = myFile.ReadToEnd();
87.
myFile.Close();
88.
}
89.
90.
string[] sCols = sContent.Split(delimiterstring, StringSplitOptions.None);
91.
92.
if (sCols.Length >= iLine)
93.
{
94.
if (!bReplace)
95.
sCols[iLine - 1] = sLines + "\r\n" + sCols[iLine - 1];
96.
else
97.
sCols[iLine - 1] = sLines;
98.
99.
sContent = "";
100.
for (int x = 0; x < sCols.Length - 1; x++)
101.
{
102.
sContent += sCols[x] + "\r\n";
103.
}
104.
sContent += sCols[sCols.Length - 1];
105.
106.
}
107.
else
108.
{
109.
for (int x = 0; x < iLine - sCols.Length; x++)
110.
sContent += "\r\n";
111.
112.
sContent += sLines;
113.
}
114.
115.
116.
StreamWriter mySaveFile = new StreamWriter(sFilename);
117.
mySaveFile.Write(sContent);
118.
mySaveFile.Close();
119.
}
120.
}
01.
public partial class Form1 : Form
02.
{
03.
04.
05.
public Form1()
06.
{
07.
InitializeComponent();
08.
}
09.
10.
private void Form1_Load(object sender, EventArgs e)
11.
{
12.
TextDatei c_textdatei = new TextDatei();
13.
}
14.
15.
private void timeResync_Tick(object sender, EventArgs e)
16.
{
17.
//Einlesen einer Datei
18.
string fs = c_textdatei.ReadFile(@"c:\text.txt");
19.
}
20.
}
Was ist falsch?
LG
6 Antworten
- LÖSUNG Berrnd schreibt am 24.08.2011 um 21:38:49 Uhr
- LÖSUNG cewiethemaster schreibt am 24.08.2011 um 22:00:29 Uhr
- LÖSUNG 1002-btl schreibt am 24.08.2011 um 22:31:39 Uhr
- LÖSUNG cewiethemaster schreibt am 24.08.2011 um 22:33:42 Uhr
- LÖSUNG noxcry schreibt am 25.08.2011 um 00:38:21 Uhr
- LÖSUNG cewiethemaster schreibt am 25.08.2011 um 08:00:42 Uhr
- LÖSUNG noxcry schreibt am 25.08.2011 um 00:38:21 Uhr
- LÖSUNG cewiethemaster schreibt am 24.08.2011 um 22:33:42 Uhr
LÖSUNG 24.08.2011 um 21:38 Uhr
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 Gruß - Bernd
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();
LÖSUNG 24.08.2011 um 22:00 Uhr
Hi.
ich hab doch in Form1 schon
ich hab doch in Form1 schon
01.
private void Form1_Load(object sender, EventArgs e)
02.
11.
03.
{
04.
12.
05.
TextDatei c_textdatei = new TextDatei();
06.
13.
07.
}
LÖSUNG 24.08.2011 um 22:31 Uhr
Hallo,
liegen beide Ausschnitte des Quellcodes im selben Namespace?
Im Quellcode, den Du gepostet hast, ist das nicht sicher erkennbar.
Gruß
liegen beide Ausschnitte des Quellcodes im selben Namespace?
Im Quellcode, den Du gepostet hast, ist das nicht sicher erkennbar.
Gruß
LÖSUNG 24.08.2011 um 22:33 Uhr
Ja, in Form1 liegen beide im selben namSpace...
LÖSUNG 25.08.2011 um 00:38 Uhr
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
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
LÖSUNG 25.08.2011 um 08:00 Uhr
Hi.
Danke es funtkiniert ;)
Nun hab ich ein weiteres Problem.
Ich will jetzt mittels
mit einem Zeilenumbruch einen Text an die datei anhängen.
Da meckert er allerdings:
und verweißt auf + Environment.NewLine
Was kann ich da machen?
EDIT: Ich habs jetzt so gelöst
Danke es funtkiniert ;)
Nun hab ich ein weiteres Problem.
Ich will jetzt mittels
01.
private void cmdSubmit_Click(object sender, EventArgs e)
02.
{
03.
//Text an eine Datei Anhängen
04.
TextDatei c_textdatei = new TextDatei();
05.
c_textdatei.Append(@"C:\test.txt", + Environment.NewLine + txtMessage.Text);
06.
}
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
01.
private void cmdSubmit_Click(object sender, EventArgs e)
02.
{
03.
//Text an eine Datei Anhängen
04.
TextDatei c_textdatei = new TextDatei();
05.
string text = Environment.NewLine + txtMessage.Text;
06.
c_textdatei.Append(@"C:\test.txt", text);
07.
}
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte