Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2020, 12:33   #1
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию StringList err: Integer Overflow 1,8 млн строк

Добрый день.
Есть необходимость перечитать *.csv файл размером 1,8 млн строк.
100000 строк перечитываю ооочень быстро, меньше секунды, а вот с большим количеством траблы - Integer Overflow. Пробовал создавать приложение х64 - не помогло.
Я понимаю что переполнения Integer.
Сколько же строк и какой длины можно загнать в StringList?
Как решить данный вопрос?
Читал про "маппинг" - мало чего понял.. может кто на пальцам разжует?
Код:
var
  lst: TStringList;
  t1, t2: String;
begin
  FOD1.Execute;   // выбираем файл
  Edit1.Text := FOD1.filename;  // получаем путь к файлу
  lst := TStringList.Create;    // создаем стринглист
  t1 := DateTimeToStr(Now());   // засекаем начальное время
  lst.LoadFromFile(Edit1.Text); // перечитываем файл
  t2 := DateTimeToStr(Now());   // засекаем конечное время
  ShowMessage(t1 + '----' + t2);// выводим время
  lst.Free;
end;
iskurt вне форума Ответить с цитированием
Старый 10.09.2020, 13:29   #2
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,893
По умолчанию

Максимальная длинна строки и макс.кол-во строк
Shouldercannon вне форума Ответить с цитированием
Старый 10.09.2020, 13:51   #3
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

хм, странно
===
~ 2^31 - 1
TStringList может вместить до 134'217'728 строк (MaxListSize +1).
(размер колеблется в зависимости от версии Windows)
===

Оперативки 8гиг, дома 32 гига, результат одинаковый. Win 10x64
Помогите плиз разобраться.

Быть может кодировка играет роль? Стоит кодировка ANSI
iskurt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler: Помогите решить пример. A (integer), B (integer), C (byte). Вычислить: D = (A*B)/С Ambros Помощь студентам 1 04.03.2017 15:53
Поиск и удаление строк в StringList из другово stringlist SmoK777 Общие вопросы Delphi 3 06.08.2012 08:21
Сдвигание строк в StringList (Delphi) CAMOBAP Помощь студентам 6 08.03.2011 11:52
при подсчете хеш-суммы ошибка Integer Overflow. как обойти? Человек_Борща Общие вопросы Delphi 2 09.02.2011 11:20
Вычесть из Integer Form2 Integer Form1 Shouldercannon Общие вопросы Delphi 2 30.07.2010 17:47