Delphi алгоритм
1000 UAHЗдравствуйте! Необходим пример кода алгоритма для многопоточного, построчного чтения большого .txt файла.
Среда разработки Embarcadero.
Примерный объем .txt файла 2Гб
Пример содержимого файла:
заказ №1 13.04.2019
заказ №2 13.04.2019
заказ №3 13.04.2019
заказ №4 13.04.2019
Задача: многопоточно и синхронно читать построчно большой txt файл без его полной загрузки в ОЗУ
Отзыв заказчика о сотрудничестве с Valera Vino
Delphi алгоритмВсе в порядке, работа выполнена.
Отзыв фрилансера о сотрудничестве с Евгением Сергеевичем
Delphi алгоритмХороший заказчик, адекватный. Приятно работать.
Рекомендую сотрудничать.
-
147 5 0 Сделаю через dll.
В делфи не нашел идеального способа, поэтому в шарпе соберу dll и через неё будем работать.
-
221 6 1 Функция CreateFileA
Второй параметр dwDesireAccess - устанавливаете в
GENERIC_READ
Третий - dwShareMode ставите в 1
Главное правило - все остальные открытия данного файла (другими потоками или процессами) не должны противоречить первому открытию в вопросах прав совместного доступа.
Синхронизацию чтения если требуется можно и через евенты или через вами определенные флаги/значения в shared memory. Из одного процесса вообще не проблема. Вот собственно и весь алгоритм. Более детально - две пачки честера и кофе. Будет со схемками/блоками ))
-
Привет, напиши пожалуйста мне в телеграм t.me/coinbits
или тут в личку. -
Мне необходимо многопоточно и синхронно дергать строки поочередно в каждый поток с смещением от начала и до конца файла.
-
Такое "многопоточное" чтение бессмысленно, т.к. приведёт не к увеличению скорости чтения, а наоборот - к деградации, особенно если файл находится на жёстком диске.
-
Да нет, вы только проиграете по скорости, потому что скорость последовательного чтения как минимум на 2 порядка выше скорости случайного чтения. А при многопоточном чтении вы как раз и получите вариант случайного чтения данных с диск.
-
Нужно оптимизировать обработку потока файла, в алгоритме о котором вы не сказали ни слова. Открытие нескольких дескриторов не увеличит скорость обработки информации, физический диск то один.
-
Выигрыш от многопоточности будет только при обработке файла, а не при его чтении. Чтобы получить максимальную скорость, читать нужно одним потоком последовательно, а обрабатывать считанные данные уже многопоточно.
-
Актуальные фриланс-проекты в категории Десктопные приложения
Нужен Airtable-архитектор для построения реляционной схемы и новой чистой базы AirtableНеобходимо помочь переосмыслить и построить чистую реляционную схему для внутренней операционной системы на Airtable. Текущая база уже используется командой, но она выросла органически: структура частично плоская, часть таблиц/вьюшек используется активно, часть почти не… Базы данных и SQL, Десктопные приложения ∙ 1 день 3 часа назад ∙ 9 ставок |
Создание ПО для генерации файлов резки деревянных пазловИщем разработчика для создания программного обеспечения, которое автоматизирует процесс построения файлов резки для деревянных фигурных пазлов. Текущий процесс Сейчас каждый файл создается дизайнером вручную в Adobe Illustrator. Файл содержит: внешний контур пазла произвольной… Десктопные приложения ∙ 1 день 7 часов назад ∙ 13 ставок |
Небольшая правка на сайте
700 UAH
Нужно переподвизать договор оферты в футтере на новый , в компании поменялся регламент Задача на 20 минут Веб-программирование, Десктопные приложения ∙ 2 дня 9 часов назад ∙ 107 ставок |
Инструмент сверки счетов с банком, картами и бухгалтеромТехническое задание: инструмент сверки счетов с банком, картами и бухгалтеромОбщая цель Нужен локальный инструмент (скрипт/небольшое приложение на Python), который запускается вручную раз в 1-2 месяца на моём компьютере и делает сверку между: Счетами, которые я выставил клиентам… Python, Десктопные приложения ∙ 4 дня 16 часов назад ∙ 43 ставки |
Добавить паузы 10-30 секунд между отправками писемЗдравствуйте! Ищу опытного программиста 1С / BAS (BAF) для оперативного решения технической проблемы с почтовой рассылкой.Суть проблемы: Используем бухгалтерскую программу BAF (Business Automation Framework), редакция 2.0. Раз в месяц возникает необходимость массово отправлять… Веб-программирование, Десктопные приложения ∙ 10 дней 8 часов назад ∙ 10 ставок |