Перестановка данных в файлах - PullRequest
0 голосов
/ 17 июля 2011

Существует массив чисел, разделенный на разделы, содержащие одинаковое количество элементов (как вывод array_chunk ())Они записаны в отдельные файлы, файл 1.txt содержит первый блок, 2.txt - второй и так далее.И теперь я хочу, чтобы эти файлы содержали различное количество элементов исходного массива.Конечно, я могу прочитать их в один массив и снова разделить, но это требует довольно большого объема памяти.Не могли бы вы помочь мне с более эффективным решением?(Количество файлов и размер последнего хранятся отдельно) У меня нет других идей ...

1 Ответ

0 голосов
/ 17 июля 2011

Знаете ли вы, что это за другой номер?Если вы это сделаете, то вы можете легко прочитать данные, а затем всякий раз, когда вы заполняете блок записывать данные.В псевдокоде:

for each original file:
    for each record:
        add record to buffer
        if buffer is desired size:
            write new file
            clear buffer
write new file

Очевидно, вам нужно хранить новые файлы отдельно от старых.И затем, как только вы переписали данные, вы можете их как-то поменять.(Я бы лично предложил иметь два каталога, затем переименовать каталоги после того, как вы закончите.)

Если вы не знаете, каким должен быть размер ваших чанков (например, вам нужно определенное количество файлов)затем сначала выполните любую работу, которая потребуется, чтобы выяснить это, а затем перейдите к исходному решению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...