1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27
1

Индекс находится вне границ массива

13.04.2013, 23:14. Показов 1388. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно организовать вывод текстового файла постранично( т.е. по 25 строчек на экран) по нажатию пробела.
сейчас код исправен, но после выполнения ссылается на строчку
C#
1
  Console.WriteLine(lines[i]);
Индекс находится вне границ массива. Что делать?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 static void more(string addr)
        {
            
            string[] lines;
            lines = System.IO.File.ReadAllLines(addr, Encoding.Default);
            
            int l = lines.Length;
            int i;
 
            if (l < 25)
                foreach (string line in lines)
                    Console.WriteLine(line, Encoding.Unicode);
 
            else
            {
                for (i = 0; i < 25; i++)
                {
                    Console.WriteLine(lines[i]);
                }
                ConsoleKeyInfo keypress;
                keypress = Console.ReadKey(true); 
                bool modifiers = false;
                int k; int g; g = 0;
            if (keypress.Key == ConsoleKey.Spacebar)
                    {
                
                        while (i !=l-1)
                        {
                            g = 25 + g;
                              k = i + 25;
                                 modifiers = true;
                                for (i = g; i <= k-1; i++)
                                {
                                        Console.WriteLine(lines[i]);
                                }
                                    Console.ReadKey(true);
                        }
                }
}
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2013, 23:14
Ответы с готовыми решениями:

Индекс находится вне границ массива
Здравствуйте, ув форумчане. Я хотел добавить в свою программу сохранения и чтения историю ссылок....

Индекс находится вне границ массива
Здравствуйте. Подскажите, как исправить ошибку при парсинге. if (oneOid.Split('=').Trim() ==...

Индекс находится вне границ массива. С#
Вот код C# int m, n, summachet = 0; Console.WriteLine(&quot;Введите количество...

Индекс находится вне границ массива
Программа на вход должна получить 2 параметра: путь к файлу и число, которое нужно заменить на 0....

8
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
13.04.2013, 23:45 2
static void more(string addr)
{

string[] lines;
lines = System.IO.File.ReadAllLines(addr, Encoding.Default);

int l = lines.Length;
int i;

if (l < 25)
foreach (string line in lines)
Console.WriteLine(line, Encoding.Unicode);

else
{
for (i = 0; i < 25; i++)
{
Console.WriteLine(lines[i]);
}
ConsoleKeyInfo keypress;
keypress = Console.ReadKey(true);
bool modifiers = false;
int k; int g; g = 0;
if (keypress.Key == ConsoleKey.Spacebar)
{

while (i !=l-1)
{
g = 25 + g;
k = i + 25;
modifiers = true;
for (i = g; i <= k-1; i++)
{
Console.WriteLine(lines[i]);
}
Console.ReadKey(true);
}
}
}
}
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
13.04.2013, 23:52 3
Yekaterin@,
C#
1
2
3
4
5
6
7
using(var sr = new StreamReader("MyFile.txt")
while(!sr.EndOfStream)
{
   for(int i = 0; i < 25 && !sr.EndOfStream; i++)
      Console.WriteLine(sr.ReadLine());
   Console.ReadKey(true);
}
выводит файл постранично
2
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
13.04.2013, 23:52 4
Прошу прощения, на ночь глядя так и не осилил довольно простую функцию. свежим мозгом утром постараюсь что-то придумать
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
13.04.2013, 23:54 5
Kruds, да все нормально, просто это для любителей лишний раз считать в память весь текстовый файл, не зная заранее, что он не будет размеров в 10гб
1
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27
14.04.2013, 01:42  [ТС] 6
а как сделать так, чтобы он реагировал только на пробел? (по нажатию пробела файл пролистывался бы)
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
14.04.2013, 01:48 7
а подумать?)
C#
1
2
3
4
5
6
7
using(var sr = new StreamReader("MyFile.txt")
while(!sr.EndOfStream)
{
   for(int i = 0; i < 25 && !sr.EndOfStream; i++)
      Console.WriteLine(sr.ReadLine());
   while(Console.ReadKey(true).Key != ConsoleKey.Spacebar);
}
1
1 / 1 / 0
Регистрация: 22.11.2010
Сообщений: 27
14.04.2013, 10:36  [ТС] 8
а чтобы по нажатию enter построчно выводил? какое условие ставить?
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
14.04.2013, 12:28 9
Yekaterin@, кто знает...
0
14.04.2013, 12:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2013, 12:28
Помогаю со студенческими работами здесь

Индекс находится вне границ массива
Суть программы: считывание из файла и вывод на экран английского текста, заменяя первую букву слов,...

Индекс находится вне границ массива
Добрый день, не могу понять, в чем ошибка (выдает на строчку if (s == '1'), пишет, что массив...

Индекс находится вне границ массива
Не могу исправить ошибку &quot;Индекс находился вне границ массива&quot;. List&lt;string&gt; spec = new...

Индекс находится вне границ массива
В чем ошибка? for (int c = 0; c &lt; text.Length; c++) // до длинны...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru