Wczytanie z pliku liczb do trzech różnych zmiennych

0

Hej
Mam projekt napisania jednej aplikacji w trzech różnych środowiskach, niestety w C# jest całkiem dla mnie obcym środowiskiem...

W C builder 6 rozwiązałem tą sprawę tak:

double a,b,c,d;

 ifstream mojStrumien("C:\ceny.txt");
 mojStrumien >> a;
 mojStrumien >> b;
 mojStrumien >> c; 

plik z którego czytam ma taką strukurę:
6.5
4.8
9.3

Także wystarczy mi wczytanie całej jeden lini do jednej zmiennej.

Co prawda znalazłem klasę FileStream ale za bardzo na chwilę obecną nie wiem jak ją użyć...

Pytanie czy w C# coś podobnego, łatwego do wczytanie trzech liczb do trzech różnych zmiennych znajdę?

0

Jako że jest to krótki plik możesz zrobić

foreach(string line in File.ReadAllLines(@"C:\ceny.txt"))
{
	// Przypisywanie wartości
}

Gdzie do przypisywania wartości najlepiej użyć double.TryParse() tak aby grzecznie poinformować o nieprawidłowym wejściu a nie wywalać wyjątek. Ta metoda zwraca true kiedy udało się przekonwertować zmienną a w przeciwnym razie - false.

double a; // To będzie zadeklarowane przed pętlą.
if (!double.TryParse(line, out a) // W pętli
{
	Console.WriteLine("Nieprawidłowe wejście");
}
0

Zrobiłem na takiej zasadzie

string[] lines = System.IO.File.ReadAllLines(@"ceny.txt");
            var x = lines[0];
            var y = lines[1];
            var v = lines[2];

            a = Convert.ToDouble(x);
            b = Convert.ToDouble(y);
            c = Convert.ToDouble(v);

niby działa...

1

A musisz mieć koniecznie te 3 zmienne? Lepiej tak jak kolega @atmal proponował zrobić coś takiego:

            List<double> results = new List<double>();

            foreach (string line in File.ReadAllLines(@"C:\ceny.txt"))
            {
                double result;
                if  (Double.TryParse(line,out result))
                    results.Add(result);
                else
                {
                    Console.WriteLine("Nieprawidłowe wejście");
                }
            }

W ten sposób ominiesz błędy związanie z konwersją i ilością linii w pliku. Możesz jeszcze dodać sprawdzenie, czy plik istnieje (File.Exist).

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