Ребята как переделать вот этот код - под чтение построчно. Что бы не загружать в память. Code: 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; Начала переделывать вот так (но вот в регуляровкой рандом не дружу): Code: 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;
ТС пытается снизить потребление памяти, считать пару гигов в массив не самый лучший вариант в данном случае
я что то не понял он читает файл в 2гб? так в 32 разрядной ос ограничение и будет в 2гб для программы. либо разбивать файл, либо ммф попробовать можно.не понял конкретно задачи.
Можно поиграться с BlockRead/Write но придется играться с определением конца строки и побайтовым сдвигом..