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ę
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 :/
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.
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.
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?
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));
}
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;
@Deti: .net 1.1.
// omg [wstyd] - deti
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.