Autor Beitrag
DennisXX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Do 11.08.11 14:37 
Hallo !

Ich würde gerne Daten in einem Textfeld eingeben wollen und diese dann mittels drücken eines Buttons in einer txt datei abspeichern. Ich weiß bisher, dass das in Richtung Streaming geht, aber ich kenne ledier nicht die genauen Details. Kann mir das vielleicht jemand von euch weiterhelfen?

Grüße
Dennis


Moderiert von user profile iconTh69: Topic aus C# - Die Sprache verschoben am Fr 12.08.2011 um 12:00
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Do 11.08.11 15:34 
Schau dir dazu am besten mal die Klassen im Namespace "System.IO" an (z.B. die File-, Streamwriter- oder Textwriter-Klassen).
dark-destination1988
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: Do 11.08.11 15:42 
ausblenden C#-Quelltext
1:
2:
3:
4:
StreamWriter sw = File.CreateText(filename);
                sw.Write(text);
                sw.Flush();
                sw.Close();
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Do 11.08.11 15:54 
Warum nicht einfach so?
ausblenden C#-Quelltext
1:
File.WriteAllText(filePath, content);					
dark-destination1988
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: Do 11.08.11 16:00 
angeber :P
DennisXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Do 11.08.11 16:11 
Das ist der Code, den ich bisher geschrieben habe, aber leider bekomme ich da eine Fehlermeldung !

ausblenden Quelltext
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:
private void cmdStreaming_Click(object sender, EventArgs e)
        {
                string strNameData = "text.txt";
                string strCurrentPath = @"C:\";
                string strCurrentValue = String.Empty;

                using (StreamWriter writer = new StreamWriter(strCurrentPath + strNameData))
                {

                    try
                    {
                        strCurrentValue = txtValues.Text;
                        MessageBox.Show("Auslesen des Textfeldes erfolgreich !");
                    }

                    catch (NullReferenceException ex)
                    {
                        Console.WriteLine("Throwing Null Reference Exception in Streaming Situation, Source: " + ex.Message);
                        return;
                    }
            
                    finally
                    {
                         writer.WriteLine(strCurrentValue);
                         MessageBox.Show("Serialisierung erfolgreich abgeschlossen !");
                    }

                }            
                       
         }


Leider stürtzt das Programm bereits in dieser Codezeile ab:

using (StreamWriter writer = new StreamWriter(strCurrentPath + strNameData))

Was mache ich da falsch??

Grüße
Dennis
dark-destination1988
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: Do 11.08.11 16:13 
den pfad wird es dann wahrscheinlich nicht geben versuche stattdesen
ausblenden C#-Quelltext
1:
new StreamWriter(strCurrentPath+"\\" + strNameData)					

wenn die datei xyz heißt und der pfad C:/meinpfad wird daraus C:/meinpfadxyz--> gibts nicht--> also fliegt er dort raus
Edit: vergiss was ich geschrieben habe das haut schon hin... da du als pfad C:/

versuch es im administrator modus auszuführen!!!


Zuletzt bearbeitet von dark-destination1988 am Do 11.08.11 16:17, insgesamt 2-mal bearbeitet
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Do 11.08.11 16:15 
Ich würde dir empfehlen grundsätzlich die System.IO.Path.Combine-Funktion zu verwenden aber das sollte hier nicht das Problem sein.

Zur Fehlersuche wäre es praktisch zu wissen welche Fehlermeldung kommt.
Kann es sein das du keine Schreibrechte auf dem Stammverzeichniss C:\ hast?
DennisXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Do 11.08.11 16:25 
Es lag tatsächlich daran, dass ich nicht auf C: schrreiben kann (warum auch immer), aber wenn ich auf ein persönliches Netzlaufwerk von mir "streame", dann läuft das Programm durch.

Ich teste ncohmal ein wenig herum und wenn noch eine Frage aufkommen sollte, dann melde ich mich nochmal.

Beste Grüße
Dennis
DennisXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Fr 12.08.11 09:10 
Hallo zusammen !

Ich habe mich eben mal daran versucht, die Daten, die ich in ein txt Dokument geschrieben habe, nun wieder auszulesen und irgendwo in meinem Programm einzeigen zu lassen, aber leider funktioniert diese Vorhaben nicht.

Kann mir vielleicht jemand von euch sagen, wie ich so etwas machen kann? Also was die grundlegenden Schritte sind meine ich !

Grüße
Dennis
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Fr 12.08.11 09:27 
Eigentlich läuft das ganze ähnlich wie das schreiben ab.

user profile iconbakachan hat folgendes geschrieben Zum zitierten Posting springen:
Schau dir dazu am besten mal die Klassen im Namespace "System.IO" an (z.B. die File-, Streamwriterreader- oder Textwriterreader-Klassen).


Es gibt Funktionen um alles auf einmal einzulesen, zeilenweise einzulesen und so weiter...
DennisXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Fr 12.08.11 09:56 
Ok dann werde ich mich damit nochmal auseinandersetzen.

Ich habe hier nochmal versucht, einen Öffnen Dialog zu starten, allerdings bekomme ich in der Zeile "Nullable<bool> result = openDialog.ShowDialog();" einen Fehler, Boolean Konvertierung ist nicht möglich. Hier der Code:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
OpenFileDialog openDialog = new OpenFileDialog();
openDialog.FileName = "Auswahl einer Datei";
openDialog.Filter = "Text documents (.txt)|*.txt";

Nullable<bool> result = openDialog.ShowDialog();

  if (result == true)
  {
     // Open document
     string filename = openDialog.FileName;
  }


Was genau mache ich da falsch und wie bekomme ich eine txt Datei dann geöffnet? Danke nochmal für die Unterstützung !

Grüße
Dennis
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Fr 12.08.11 10:40 
Die Funktion ShowDialog() gibt dir ein Ergebnis vom Typ System.Windows.Forms.DialogResult zurück (kein bool).
DennisXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133



BeitragVerfasst: Fr 12.08.11 10:45 
Ok dann hat Microsoft das aber falsch auf seinen MSDN seiten dokumentiert, denn dort ist es so angegeben. Wie genau kann ich das denn nun umsetzen? Weiß das vielleicht jemand?

Grüße
Dennis
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Fr 12.08.11 10:53 
user profile iconDennisXX hat folgendes geschrieben Zum zitierten Posting springen:
Ok dann hat Microsoft das aber falsch auf seinen MSDN seiten dokumentiert, denn dort ist es so angegeben.

Nein dort ist es richtig angegeben:
msdn.microsoft.com/e...iledialog.aspx#Y4753

Du warst wahrscheinlich auf dieser Seite. Die ist aber für Silverlight und nicht für WinForms.

Aber solche Fehler wie sie bei dir vorkommen sollte man auch durchaus alleine lösen können.
Er sagt dir ja sogar das die Umwandlung von dem einen in den anderen Typ nicht geht.
Und falls du Visual Studio verwendest (bei einigen anderen auch) wird dir beim schreiben des Codes ja auch einiges angezeigt. Bei Funktionen z.B. Rückgabetyp und welche Überladungen mit welchen Parametern es gibt.
Spätestens wenn da ein anderer Rückgabetyp steht als du ihn erwartest solltest du stutzig werden.