En av deluppgifterna i min C#-laboration går ut på att man ska läsa in en textfil och dela in den i X antal sidor med 23 rader på varje sida. Så småningom ska jag kunna gå framåt och bakåt i texten med hjälp av knappar, och även välja valfri sida via en rullista, MEN för att klara detta måste jag först läsa in textfilen och dela upp den i rader. Varje rad ska sen läggas in i ett index i en array, så att jag sen kan skriva att sida 1 = [0] t.om. [22], sida 2 = [23] t.o.m. [45], osv.
Jag har för mig att jag ska använda mig av en nästlad for-sats, men kan jag läsa in en rad och lägga den i ett index i arrayen som jag har skrivit nedan?
public const int LINES_PER_PAGE = 23;
public void Page(string ”Hitch.txt”){
string line=null;
FileStream fs = new FileStream( "Hitch.txt", FileMode.Open );
StreamReader reader = new StreamReader( fs );
do{
String[] array = new String [array.length-1];
for(int i = 0; i<LINES_PER_PAGE && ((line=reader.ReadLine())!=null);i++)
{
for(String [j] = 0; j = i; j++;)
}
}while( line!=null);
}
Dessa rader bör göra samma sak som du gör i din do-sats. Du får dina rader i en arraylist istället för en array, men det spelar nog ingen roll i ditt exempel. Skulle det vara så att du måste ha dina rader i en array istället för en arraylist så kan du på din arraylist göra en CopyTo() efter inläsningen och då kopiera över innehållet till en array istället.
Om du använder dig av .NET 2.0 så hade jag använt mig av en List<string> istället för arraylisten, men det är mer kosmetika, funktionen blir den samma i ditt fall...