Odczyt z pliku

0

Witam,
od razu zaznaczę, że jestem bardzo początkująca z C#.
Mam do zrobienia klasę, która będzie odczytywała dane z pliku.
Wygląd pliku:1 2 3
Problem tkwi w tym, że nie wiem jak poprawnie przypisać np. 1 do zmiennej1. Jak sprawić, żeby każda liczba była przypisywana do innej zmiennej lub tablicy ?

Oto co udało mi się zrobić:

const string fileName = "wejscie.dat";
        
        const char Space = ' ';
        public static int zmienna1 ,
                          zmienna2, 
                          zmienna3;
        

        static Sprawdzanie() 
        {
            if (File.Exists(fileName))
            {
                BinaryReader binReader = new BinaryReader(File.Open(fileName, FileMode.Open));
               // zmienna1 = binReader.ReadInt16();
// tu pojawia się problem bo nie wiemjak przypisać dane

                binReader.Close();
            }
       }
0
int[] numbers = Array.ConvertAll<string, int>(File.ReadAllText(fileName).Split(' '), str =>
{
    return Convert.ToInt32(str);
});

Oczywiście zakładamy że w pliku nie ma nigdzie zbędnych znaków (spacji nie tam gdzie trzeba, liter, etc), są tylko liczby porozdzielane spacjami.

0

hmm ... widzę mniej więcej ogólny zarys tego co się tu dzieje, jednak nie do końca rozumiem jak to działa i dlatego nie wiem jak to dalej zastosować w programie. Zaraz wyjdę na totalną blondynkę, ale co tam....
Rozumiem, że tworzy się tu tablica

 numbers

, która odczytuje i rozdziela z pliku fileName liczby jako zmienna str </code>?? liczby są zamieniane od razu ze string na int... Problem mam z tą częścią: <code class="csharp">,str => {return Convert.ToInt32(str);} co dokładnie to robi?

0

Jest to delegat reprezentujący metodę (akurat tutaj napisałem wyrażeniem lambda bo jest krócej), która za parametr przyjmuje łańcuch str, konwertuje go na liczbę którą następnie zwraca ;)

EDIT: W tym wypadku to nawet nie trzeba pisać tej lambdy.. Wystarczy sama nazwa metody czyli Convert.ToInt32.

0

aha.... :D to już ustaliliśmy, że jestem blondynką .... bo nie za bardzo rozumiem cała tę konstrukcję...
A jak wypisać tą liczbę na ekranie? ? Mianowicie chciałabym, stworzyć małą funkcyjkę:

public void ZwrocDane()
        {
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine("liczba " +i +" ");
            }
           
        } 

i nie wiem właściwie co odpowiada ze przechowywanie wczytanych liczb i co wstawić do Console.WriteLine aby została ona wyświetlona.

0
void WczytajIWypisz()
{
    int[] numbers = Array.ConvertAll<string, int>(File.ReadAllText("file.txt").Split(' '), Convert.ToInt32);

    for (int i = 0; i < numbers.Length; i++)
    {
        Console.WriteLine("Liczba: " + numbers[i]);
    }
}
0

Wielkie dzięki :)

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