Autor Beitrag
Maria2
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Sa 09.03.19 11:49 
Ich hätte aber ne Frage zum CSV Datei
Ich verstehe nicht, warum csv-Datei trotz Trennzeichen nicht in seperaten Spalte abspeichert?
S1 soll in Tabelle A (Excell)
S2 soll in Tabelle B (Excell)
S3 soll in Tabelle C (Excell)
Zeit soll in Tabelle D (Excell)

Moderiert von user profile iconTh69: S1, S2, S3 und Zeit beziehen sich auf den Code aus Messzeit erstellen

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
private void dataSave_Button_Click(object sender, EventArgs e)
{
    // Erstellen eines SaveFileDialog um Speicherort und Dateiname abzufragen
    SaveFileDialog saveFile1 = new SaveFileDialog();

    // Speicherformat wählen
    //saveFile1.DefaultExt = "*.rtf";
    //saveFile1.Filter = "Text documents (.rtf)|*.rtf";
    saveFile1.DefaultExt = "*.csv";
    saveFile1.Filter = "Text documents (.csv)|*.csv";

    // Ermitteln, ob Dateiname eingegeben/ausgewählt wurde
    if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK &&
        saveFile1.FileName.Length > 0)
    {
        // Inhalt der RichTextBox in Datei sichern
        TextWriter txt = new StreamWriter(saveFile1.FileName);
        //txt.Write(serialMonitor.Text.Replace('.', ','));
        txt.Write("sep=;\n" + serialMonitor.Text.Replace('.'','));
        txt.Close();
    }
}


Moderiert von user profile iconTh69: Topic aus C# - Die Sprache verschoben am Sa 09.03.2019 um 11:59
Moderiert von user profile iconTh69: Fehlerhafte "Tabelle X" korrigiert.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4120
Erhaltene Danke: 852

Win10
C#, C++ (VS 2015/17)
BeitragVerfasst: Sa 09.03.19 12:09 
Verstehe ich das richtig, daß du das Semikolon als Trennzeichen haben möchtest?

Dann mußt du auch in den Daten (d.h. serialMonitor.Text) selber das Semikolon als Trennzeichen hinzufügen.
Wie sieht denn z.B. eine Zeile der generierten CSV-Datei aus?

Da "sep=;\n" eine Excel-spezifische Anweisung ist, und das Semikolon sowieso der Standard ist, würde ich diese Zeile komplett aus der CSV-Datei weglassen.

Edit: Ich habe mir noch mal den Sourcecode aus deinem anderen Thema bzgl. serialMonitor.Text angeschaut. Du solltest die Daten in einer eigenen Liste (List<MyData>) abspeichern und daraus sowohl die Textdarstellung als auch die CSV-Datei generieren (jeweils mit passender Formatierung).

PS: Das Replace('.'',') (ich nehme an, um in Zahlenwerten den Dezimalpunkt durch das Komma zu tauschen) solltest du nicht verwenden, sondern auf Culture zugreifen.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4444
Erhaltene Danke: 914


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 09.03.19 12:27 
Zitat:
Ich verstehe nicht, warum csv-Datei trotz Trennzeichen nicht in seperaten Spalte abspeichert?

Das von Excel benutzte Trennzeichen ist systemabhängig und kann von jedem Nutzer beliebig für sich geändert werden.

Welches aktuell gilt kannst du über "CultureInfo.CurrentCulture.TextInfo.ListSeparator" auslesen. Das es dann auch mit Excel auf einem anderen Rechner, einem anderen Nutzer auf deinem Rechner, Morgen für dich wenn du Systemeinstellungen bei dir geändert hast auch weiterhin funktioniert ist aber nicht vorhersagbar. Eine CSV ist nicht von einem beliebigen Excel immer so einfach in der Form zu öffnen wie du es möchtest.

Excel hat übrigens eine "Text in Spalten" Funktion. Wenn das aufteilen in Spalten nicht funktioniert hat kann man die Nutzen um die in einer Spalte dargestellten CSV Daten auf weitere Spalten zu verteilen.
Maria2 Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 10.03.19 09:14 
vielen dank für die Antworten :-)
Das Problem hab ich zum Glück jetzt gelöst :-)