[C#] Wczytanie tekstu całymi liniami

0

Witam. Chciałbym wczytać tekst z pliku do tablicy stringów, ale całymi liniami.
Jeden rekord tablicy = jedna linia tekstu.
Szukałem jakiejś gotowej metody w klasie StreamReader, ale bezskutecznie. Możecie pomóc ? Z góry dziękuję

0

A szukałeś w File? Masz tam metodę ReadAllLines...
Nie wiem co się ostatnio z wami dzieje, użycie wyszukiwarki przerasta siły większości forumowiczów :/

0
Alejandro napisał(a)

Szukałem jakiejś gotowej metody w klasie StreamReader, ale bezskutecznie. Możecie pomóc ? Z góry dziękuję

Ty nam to po prostu kłamiesz w żywe oczy.. w tej klasie są 4 metody wczytywania, jakie?

public override int Read ();
public override int Read (char[] buffer, int index, int count);
public override string ReadLine ();
public override string ReadToEnd ();

Niesamowicie zastanawiającym jest, w jaki sposób przeoczyłeś wiadomo którą metodę... a może.. nie wiesz jak zapisać do tablicy? No to ok, ale wtedy pytanie powinno wyglądać inaczej, bo tak to przeginasz.

0

To wy przeginacie. W Visual Studio 2003 na 1.1 nie ma tej metody. Dlatego zadałem pytanie, być może ktoś zna jakiś alternatywny sposób. Sami macie pretensje do ludzi że spamują i nie szanują forum - sami lepsi nie jesteście. Wiem co to jest metoda ReadAllLines klasy File, ale tez wiem że pojawia sie od frameworka 2.0.
Wy pewnie nie wiedzieliście.....
Pozdrawiam.

0

A czy maja w dowodzie zawod 'wrozka'? Nie napisales, ze chodzi o 1.1, stad nie dziw sie odpowiedziom.

Druga odpowiedz zreszta jest sluszna. Masz metode ReadToEnd do tego jeszcze String.Split i jestes w domu. Albo petla i metoda ReadLine. Tak trudno umiec czytac dokumentacje?

0
public static string[] ReadAllLines(string path)
{
    return ReadAllLines(path, Encoding.UTF8);
}
public static string[] ReadAllLines(string path, Encoding encoding)
{
    ArrayList list = new ArrayList();
    using (StreamReader reader = new StreamReader(path, encoding))
    {
        string str;
        while ((str = reader.ReadLine()) != null)
        {
            list.Add(str);
        }
    }
    return (string[]) list.ToArray(typeof(string));
}
0

public static string[] ReadAllLines(string path, Encoding encoding)
{
ArrayList list = new ArrayList();
using (StreamReader reader = new StreamReader(path, encoding))
{
string str;
while ((str = reader.ReadLine()) != null)
{
list.Add(str);
}
}
return (string[]) list.ToArray(typeof(string));

Działająca, ale niezbyt efektywna metoda (kilka razy boxing / unboxing).

Łatwiej zastosować coś w ten deseń:

while (str = reader.ReadLine()))
   yield return str;
0

@Deti: .net 1.1.

// omg [wstyd] - deti

0

Działająca, ale niezbyt efektywna metoda (kilka razy boxing / unboxing).

Wiesz co jest najlepsze? Że to kod wyciągnięty z frameworka 2.0.

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