Odczyt konkretnych elementów z pliku

0

Witam,
Walczę z odczytem z pliku, mianowicie wiem jak odczytać konkretną linijkę tekstu itd, ale załóżmy, że plik wyglądam mniej więcej tak:

[ZAWARTOSC]
"00622","Detaliczny",1557.9500,1916.2800,0.6949,0.4100,638.7600
"00622","Hurtowy",1209.4600,1487.6400,0.3158,0.2400,290.2700
"00622","Specjalny (EKSPLOATA",1120.9600,1378.7800,0.2195,0.1800,201.7700
"00622","DETAL",1313.2400,1615.2900,0.4287,0.3001,394.0500
"00622","DETAL -5%",1103.0300,1356.7300,0.2000,0.1667,183.8400
"00622","DETAL -10%",957.4900,1177.7100,0.0417,0.0400,38.3000
"00622","EURO",919.1900,1130.6000,0.0000,0.0000,0.0000
"00622","DLA PRACOWNIKÓW",928.3800,1141.9100,0.0100,0.0099,9.1900
[NAGLOWEK]
"DODATKOWEKONTRAHENTOW"

[ZAWARTOSC]
"TEST",0,0,0,1 

I teraz czy mógłby mnie ktoś naprowadzić na jakieś materiały pomocnicze jak odczytywać konkretne elementy z linii którą pobrałem do programu ?

Z góry dziękuję za pomoc :-)

1

Wczytaj po liniach, posplituj po ",". Zrób z tym co chcesz, np. wrzuć to sobie do jakiegoś kontenera, który umożliwi Ci łatwy dostęp do konkretnych elementów.

0

Czyli generalnie każde słowo w linii oddzielić jakimiś konkretnymi separatorami ?

1

Masz tutaj jakieś połączenie pliku ini z csv więc możliwe, że nie da rady wykorzystać gotowego rozwiązania.

Generalnie System.String.Split twoim przyjacielem jest.

0

Tym się jeszcze nie bawiłem :-) zobaczymy czy się uda i zdam relacje co z tego wyszło.

1

Tak możesz zrobić:

using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
using System.IO;


class Program {
    public static void ReadAndPrint(string path) {
        var lines = File.ReadAllLines(path);
        foreach(var line in lines) {
            if (line.Contains(',')) {
                var data = line.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                for (int i = 0; i < data.Length; ++i)
                    Console.Write("{0} ", data[i]);
                Console.WriteLine();
            }
            else Console.WriteLine(line);
        }
    }

    public static void Main(string[] args) {
        ReadAndPrint("test.txt");
    }
}

Jeśli chcesz jeszcze wykrywać czy plik istnieje i łapać błędy to możesz zapiąć to w blok try {} catch() {}.

1 użytkowników online, w tym zalogowanych: 0, gości: 1