Entwickler-Ecke
IO, XML und Registry - Datum als Dateiname ausgeben
grisu2611 - Sa 03.11.07 00:06
Titel: Datum als Dateiname ausgeben
Hallo ich bins wieder....
ich hab da mal wieder ein problem....
möchte das aktuelle Datum mit Uhrzeit in meinem Dateinamen abspeichern und hab da mal zum probieren das hier gemacht aber es will nicht! Muss dabei sagen in einem Beispiel Programm läuft es!
C#-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: 31: 32: 33: 34: 35: 36: 37:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO;
namespace TestMesskarte { public partial class Form1 : Form { string dateiNameTxtBox = "hilfe"; string spannungSpeichernInDatei = "13,5"; string rechtsLinksLaufMotor = "Linkslauf"; public DateTime date;
public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { StreamWriter schreibenInDatei = File.CreateText(@"c:\\temp\" + dateiNameTxtBox + "_" + date.ToString("T") + ".txt");
schreibenInDatei.WriteLine("\r\n%Prüfspannung: " + spannungSpeichernInDatei + " V \r\n"); schreibenInDatei.WriteLine("%Laufrichtung des Motors: " + rechtsLinksLaufMotor + "\r\n"); schreibenInDatei.WriteLine("%Zeit[s] Spannung[V] Strom[A] Drehmoment[Nm]"); schreibenInDatei.WriteLine("%==========================================="); schreibenInDatei.WriteLine(); schreibenInDatei.Close(); } } } |
bekomme dann die aussage: das angegebene Dateiformat wird nicht unterstützt!
Hilfe!
Danke Frank
grisu2611 - Sa 03.11.07 01:14
hab mal weiter geforscht....
bin jetzt schon so weit:
C#-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: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Globalization;
namespace TestMesskarte { public partial class Form1 : Form { string dateiNameTxtBox = "hilfe"; string spannungSpeichernInDatei = "13,5"; string rechtsLinksLaufMotor = "Linkslauf"; public DateTime dt = DateTime.Now;
string date = dt.ToString("s", DateTimeFormatInfo.InvariantInfo);
public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { StreamWriter schreibenInDatei = File.CreateText(@"c:\\temp\" + dateiNameTxtBox + "_" + date + ".txt");
schreibenInDatei.WriteLine("\r\n%Prüfspannung: " + spannungSpeichernInDatei + " V \r\n"); schreibenInDatei.WriteLine("%Laufrichtung des Motors: " + rechtsLinksLaufMotor + "\r\n"); schreibenInDatei.WriteLine("%Zeit[s] Spannung[V] Strom[A] Drehmoment[Nm]"); schreibenInDatei.WriteLine("%==========================================="); schreibenInDatei.WriteLine(); schreibenInDatei.Close(); } } } |
bekomme aber immer noch fehler:
Fehler 1 Ein Feldinitialisierer kann nicht auf das nicht statische Feld bzw. die nicht statische Methode oder Eigenschaft "TestMesskarte.Form1.dt" verweisen.
und
Warnung 2 Das Zugreifen auf einen Member auf "TestMesskarte.Form1.dt" kann zu einer Laufzeitausnahme führen, da es sich hierbei um ein Feld einer Marshal-by-reference-Klasse handelt.
Hilfe?!
Benutze ich jetzt überhaupt das richtige?
Danke Frank
Christian S. - Sa 03.11.07 13:57
Der erste Fehler ist doch eigentlich selbsterklärend. Du initialisierst das Feld "date", indem Du auf das Feld "dt" zugreifst. Das ist verboten. Wenn Du das beim Erstellen der Klasse machen willst, mach es im Konstruktor. Allerdings brauchst Du für das Datum eigentlich gar kein Feld, eine lokale Variable in der Methode sollte reichen.
Die Warnung habe ich noch nie gesehen, aber ich würde wetten, dass die verschwindet, wenn Du den Fehler behebst ;-)
grisu2611 - Sa 03.11.07 14:18
Danke....aber....
habe es jetzt so geändert und komme trotzdem nicht weiter...
C#-Quelltext
1:
| StreamWriter schreibenInDatei = File.CreateText(@"c:\\temp\" + dateiNameTxtBox + "_" + vorKommaZahl + "_" + dt.ToString("s", DateTimeFormatInfo.InvariantInfo) + ".txt"); |
bekomme jetzt den Fehler:
Das angegebene Pfadformat wird nicht unterstützt!
Christian S. - Sa 03.11.07 14:20
Du escapest den ersten Backslash, was Du aber IIRC nicht brauchst, wenn ein @ vorm String steht.
grisu2611 - Sa 03.11.07 20:52
alles klar wer lesen kann ist klar im vorteil!!!
hier jetzt so wie ich es haben wollte und wie es auch funktioniert!
C#-Quelltext
1: 2: 3:
| string dateTime = DateTime.Now.ToString("ddMMMyyyyHHmmss");
StreamWriter schreibenInDatei = File.CreateText(@"c:\temp\" + dateiNameTxtBox + "_" + vorKommaZahl + "k" + nachKommaZahl + "_" + dateTime + ".txt"); |
so schönen abend noch!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!