Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.02.2013, 22:07
zyxel8787 zyxel8787 вне форума
Прохожий
 
Регистрация: 25.03.2009
Сообщения: 5
Репутация: 10
По умолчанию Range Check Error

Есть два файла по 400 млн. значений,пытаюсь загрузить их в два динамических массива но при нажатии кнопки загрузка вылетает эта ошибка Range Check Error. Может что то с памятью надо делать?


Код:
procedure LoadData(fn:string);

begin

  AssignFile(f,fn);//Подключаем файл
  Reset(f);//Открываем файл
  SetLength(data,count);//Задаём размер массива data
  d:=round(count/100);//Задаём шаг
  a:=d;
  Form1.Label5.Caption:='Please,wait';
  Form1.Gauge1.Progress:=0;//Обнуляем Gauge1
  Form1.Gauge1.Show;//Показываем Gauge1
   
  for i:=1 to count do//Цикл считывания строк из файла
    begin

    CheckAbort;//Проверяем нажатие кнопки закрытия программы
    Readln(f,buf);//Считываем строку из файла и помещаем в buf

      if i=a then//Условие обновления Gauge1
        begin
        Form1.Gauge1.Progress:=Form1.Gauge1.Progress+1;
        a:=a+d;//Задаём значение проверки для следующего обновления Gauge1
      end;

    ps:=pos('.',buf);//Ищем в строке buf символ '.' и сохраняем позицию в ps
      if ps=0 then//Условие проверки числа; если '.' нет, то выполняем
        begin
          buf:=buf+',0';//добавляем к числу ',0'
        end
      else//Заменяем '.' на ','
        begin
        num:=copy(buf,1,ps-1);//Сохраняем символы из buf в num до точки
        num:=num+',';//Добавляем к num символ ','
        num:=num+copy(buf,ps+1,length(buf)-ps);//Сохраняем символы из buf в num после точки
      end;
      data[i-1]:=StrToFloat(num);//Конвертируем из строки в число и сохраняем в массив
    end;
  CloseFile(f);

  Form1.Gauge1.Hide;//Прячем Gauge1

MAD: Для оформления кода используем тег code а не quote

Последний раз редактировалось M.A.D.M.A.N., 25.02.2013 в 22:21.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:30.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025