示例#1
0
 public override string ToString()
 {
     return(String.Format("<tr><td>{0}</td>{1}</tr>", Standort.ToString(), Wetterwert.ToString()));
 }
        /// <summary>
        /// Wandelt die String-Liste in Wetterdaten um.
        /// Author grudoa11
        /// </summary>
        public void ConvertCSV()
        {
            List <String> input = this.m_DAL.ReadOut();

            foreach (string str in input)
            {
                String[] sfeld = str.Split(';');
                // Station
                int?     stationsnummer = ConvertStringToIntNull(sfeld[0]);
                string   hv             = ConvertStringToStringNull(sfeld[1]);
                string[] hilfsfeld      = hv.Split('"');

                int indexDesOrtes = 0;
                if (hilfsfeld.Length >= 1)
                {
                    indexDesOrtes = 1;                                  // Falls die Daten von der ZAMG kommen muss Index 1 genommen werden
                }
                string ortsname = hilfsfeld[indexDesOrtes];             // wegen " und \ war ein Split durchzuführen

                int?seehoehe = ConvertStringToIntNull(sfeld[2]);        // in Meter

                // Wetterdaten (nach reihenfolge in csv-datei)
                //DateTime messdatum = Convert.ToDateTime(sfeld[3]); // Datum und Zeit der Messung
                string[] datum        = sfeld[3].Split('-', '"', '.');
                int      indexOfDatum = 0;
                if (datum.Length >= 3)
                {
                    indexOfDatum = 1;                                // Falls ZAMG-Datei
                }
                int tag   = Convert.ToInt32(datum[indexOfDatum]);
                int monat = Convert.ToInt32(datum[indexOfDatum + 1]);
                int jahr  = Convert.ToInt32(datum[indexOfDatum + 2]);

                string[] zeit        = sfeld[4].Split(':', '"');
                int      indexOfZeit = 0;
                if (zeit.Length >= 2)
                {
                    indexOfZeit = 1;                               // Falls ZAMG-Datei
                }
                int      stunde    = Convert.ToInt32(zeit[indexOfZeit]);
                int      minute    = Convert.ToInt32(zeit[indexOfZeit + 1]);
                DateTime messdatum = new DateTime(jahr, monat, tag, stunde, minute, 0);

                float?temperatur = ConvertStringToFloatNull(sfeld[5]);             // in °C
                float?taupunkt   = ConvertStringToFloatNull(sfeld[6]);             // in °C
                int?  relativeLF = ConvertStringToIntNull(sfeld[7]);               // in %

                int?windrichtung = ConvertStringToIntNull(sfeld[8]);               // °

                float?windgeschwindigkeit = ConvertStringToFloatNull(sfeld[9]);    // in km/h
                // Windspitze kann auch NULL sein
                int?windspitzenrichtung = ConvertStringToIntNull(sfeld[10]);       // in °

                float?windspitzengesch = ConvertStringToFloatNull(sfeld[11]);      // in km/h
                // NULL-Wert möglich
                float?niederschlag = ConvertStringToFloatNull(sfeld[12]);;         // in l/m²

                float?luftdruckMeeresniveau = ConvertStringToFloatNull(sfeld[13]); // in hPa (hektoPascal)

                float?luftdruckStation   = ConvertStringToFloatNull(sfeld[14]);    // in hPa (hektoPascal)
                int?  sonneneinstrahlung = ConvertStringToIntNull(sfeld[15]);      // in %

                Wetterwert wwert = new Wetterwert
                {
                    Messdatum  = messdatum,
                    Temperatur = temperatur,
                    Taupunkt   = taupunkt,
                    RelativeLuftfeuchtigkeit   = relativeLF,
                    Windrichtung               = windrichtung,
                    Windgeschwindigkeit        = windgeschwindigkeit,
                    Windspitzenrichtung        = windspitzenrichtung,
                    Windspitzengeschwindigkeit = windspitzengesch,
                    Niederschlag               = niederschlag,
                    LuftdurckMeeresniveau      = luftdruckMeeresniveau,
                    LuftdruckStationsniveau    = luftdruckStation,
                    Sonneneinstrahlung         = sonneneinstrahlung
                };

                Standort standort = new Standort {
                    Ort = ortsname
                };

                Wetterstation station = new Wetterstation
                {
                    Wetterwert = wwert,
                    Standort   = standort
                };

                this.list.Add(station);
            }
        }