import von Messdaten



  • Hallo,

    ich würde gerne eine Datei in C# importieren,
    die Datei besitzt neben Daten auch ein paar Wörter.
    Leider habe ich es bisher nur geschafft die
    Datei per StreamReader als String zu lesen,
    anschliessend habe ich den String mit split(' ')
    zerlegt.

    Ziel soll es aber sein eine liste oder Array im Format
    double zu generieren und die Wörter zu löschen.

    Format der Datei sieht ungefäh so aus

    Messdaten 01-10.2011
    1.0011 1.1111 1.11122 ............

    Wenn mir jemand weiterhelfen kann.........

    Danke

    Gruss
    Sven



  • sven1990 schrieb:

    Format der Datei sieht ungefäh so aus

    Messdaten 01-10.2011
    1.0011 1.1111 1.11122 ............

    Wie sieht das Format denn genau aus?

    Entweder packst Du die Werte schon beim erstmaligen einlesen der Datei in den richtigen Datentyp...
    BinaryReader br = new BinaryReader(File.OpenRead(""));
    double myDouble = br.ReadDouble();

    ...oder du interpretierst Dein string[] (aus split()) nach dem kompletten Einlesen der Datei. Z.B. mit Hilfe von double.TryParse()

    In jedem Fall musst Du den Aufbau der Datei exakt kennen und berücksichtigen. Wenn Du weitere Hilfe benötigst, erläutere den Aufbau hier.



  • Ist natürlich Quatsch mit einem BinaryReader an eine Textdatei zu gehen. Sorry.



  • µ schrieb:

    Ist natürlich Quatsch mit einem BinaryReader an eine Textdatei zu gehen. Sorry.

    Für Text geht der StreamReader.
    http://msdn.microsoft.com/en-us/library/system.io.streamreader.aspx

    EDIT:
    Hier ein Möglichkeit - sie ist nur sinnvoll, wenn eine Linie nicht zuviele Werte enthält.

    namespace Messdaten
    {
        using System;
        using System.Collections.Generic;
        using System.IO;
    
        class Program
        {
            static void Main(string[] args)
            {
                var values = new List<double>();
    
                var path = @"..\..\Messdaten.txt";
    
                using (var reader = new StreamReader(path))
                {
                    var title = reader.ReadLine();
    
                    while (!reader.EndOfStream)
                    {
                        var line = reader.ReadLine();
                        var tokens = line.Split(' ');
                        foreach (var token in tokens)
                        {
                            var value = double.Parse(token);
                            values.Add(value);
                        }
                    }
                }
            }
        }
    }
    

Anmelden zum Antworten