Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перемешивание строк / Delphi/RAD XE4 
:(
    Опции темы
Campus2000
Дата 7.3.2018, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.2.2018

Репутация: нет
Всего: нет



Ребята как переделать вот этот код - под чтение построчно. Что бы не загружать в память.

procedure TForm1.Button1Click(Sender: TObject);
Код

var
  s: TStringList;
  z, p, q: Integer;
begin
  s := TStringList.Create;
  s.LoadFromFile('C:\text.txt');
  z := 50;
  while (z > 0) do begin
    p := random(s.Count); q := random(s.Count);
    s.Exchange(p, q);
    dec(z);
  end;
  s.SaveToFile('c:\text.txt');
  s.Free;
end;

Начал переделывать вот так (но вот в регуляровкой рандом не дружу):

Код

var
    z, p, q: Integer;
    ft, ft2: TextFile;
    s:string;
 
begin
  if OpenDialog1.Execute then begin
  AssignFile(ft, OpenDialog1.FileName);
  Reset(ft);
  AssignFile(ft2, ExtractFileDir(OpenDialog1.FileName)+'\rez.txt');
  Rewrite(ft2); // чтобы создался новый, если нету, или перезаписался с нуля
  Append(ft2); // чтобы можно было добавлять строки, а не перезаписывать каждый раз
 begin
while not eof(ft) do
 begin
readln(ft,s);
//////////////////////////////////////
Вот тут не знаю что дописать ?
//////////////////////////////////////
writeln(ft2,s)
 end;
closefile(ft);
closefile(ft2);
end;
end;
end;

Подскажите кто сможет ? 
То есть решение задачи: перемешивание строк в текстовом файле размером 500 - 700 мегабайт.
PM MAIL   Вверх
Romikgy
Дата 7.3.2018, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(Campus2000 @  7.3.2018,  14:55 Найти цитируемый пост)
 перемешивание строк в текстовом файле размером 500 - 700 мегабайт.

не получится в построчном режиме.... читать еще да, а запись в нужную строку нет, если строки все не одной длины!
Надо все прочитать , сделать сортировку , и после все записать


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Campus2000
Дата 7.3.2018, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.2.2018

Репутация: нет
Всего: нет



Цитата(Romikgy @ 7.3.2018,  19:17)
Цитата(Campus2000 @  7.3.2018,  14:55 Найти цитируемый пост)
 перемешивание строк в текстовом файле размером 500 - 700 мегабайт.

не получится в построчном режиме.... читать еще да, а запись в нужную строку нет, если строки все не одной длины!
Надо все прочитать , сделать сортировку , и после все записать

А как это сделать ? Не можете помочь. Очень нужно.
PM MAIL   Вверх
Romikgy
Дата 8.3.2018, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



использовать дельфи приоритетная задача? 
сколько памяти на компьютере?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1168 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.