169 похожих чатов

Подскажите, как работать с большими текстовыми файлами? Допустим 10 гигов, на

миллиард строк

Могу ли я прочитать конкретный кусок файла, указав номера строк, или ещё как-то? Допустим кусок 10-15%

Как осуществлять поиск по файлу?

Как можно в принципе объединить два файла по 10 гигов в один?

14 ответов

6 просмотров

Можешь. Но если строки произвольной длинны - то без учёта строк. Читать можно в провольной позиции произвольную длинну. В байтах, не в строках

Раз спрашиваете видимо не можете. 10 ГБ по современным меркам это маленький файл. Его проще загрузить в ОЗУ и работать прям там только не забудьте в ограничениях к проге указать 32 ГБ ОЗУ Что касается решения для старых компов. То используем Delphi XE 10. FPC не подходит он с файлами больше 2 ГБ плохо работает. Разве что для него на winapi писать. А на Delphi можно использовать TByteStream и TFileStream. Перемещение можно сделать через seek на нужное число байт. Все остальное в ваших руках.

Ты лучше скажи, что для чего это тебе надо?

Missclick Очепятка
Раз спрашиваете видимо не можете. 10 ГБ по соврем...

Интересно, сколько времени займет загрузка 10Г-файла в память? :)

Кириллл-🚀 Go Aaply Автор вопроса
Alexey Shumkin
Ты лучше скажи, что для чего это тебе надо?

Есть файлы с пользовательской информацией, весом, который может превышать объем оперативки. Хочу почистить дубли строк, объединить файлы в один, и организовать поиск по нему

Кириллл 🚀 Go Aaply
Есть файлы с пользовательской информацией, весом, ...

Что такое "пользовательская информация"? Какой формат этой информации? В каком она виде? Почему там есть дубли? Зачем их удалять? И зачем по нему искать?

Кириллл-🚀 Go Aaply Автор вопроса
Alexey Shumkin
Что такое "пользовательская информация"? Какой фор...

На что повлияет мой ответ на эти вопросы?

если речь о Win, то стоит посмотреть в сторону MMF

Viktor Akselrod
если речь о Win, то стоит посмотреть в сторону MMF

Linux, к слову, с MMF тоже вполне справляется :) Linux does this via the mmap system call.

Handatros
Linux, к слову, с MMF тоже вполне справляется :) ...

не исключено. я могу говорить только за то, что знаю 🙂

Кириллл-🚀 Go Aaply Автор вопроса

Всё — это данные, о которых я выше говорил Хранить — потому что они мне нужны Хранить на компьютере под виндой на ссд, локально Данные должны ХРАНИТЬСЯ в файле формата тхт, это их цель, их путь, их предназначение, при редкой необходимости нужно делать поиск по этим данным. Первоочередная цель у меня была — научиться работать с файлами, размер которых может быть десятки гигов, плюс привести в порядок имеющиеся данные

Кириллл 🚀 Go Aaply
Всё — это данные, о которых я выше говорил Хранить...

Хранить много гигабайт данных в виде простого текстового файла не стоит. ну если конечно волнует скорость работы с ними

У меня вчера в команде аналитики тоже четко знали, что им нужно: что нужно доработать фронт и бэк, чтобы они могли в SQL запросах использовать переменное количество условий... В ходе обсуждения оказалось, что они не знали, что в запросах можно использовать "вот такое-то" условие, чтобы оно "выключалось"... Час обсуждения и выяснения, что же именно им надо, сэкономило часы доработок трёх человек

Alexey Shumkin
У меня вчера в команде аналитики тоже четко знали,...

аналитики видимо не опытные, теперь знают. так и программировать научатся.

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
#include <stdio.h> int main(void) { int n; scanf("%d", &n); int digits1[n] = {0}; int digits2[n] = {0}; я не могу таким образом заранее массив нулями заполнить?
Linus
12
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
я про форму записи. смысл указывать что 8 байтный регистр 8 байт?
Aiwan \ (•◡•) / _bot
10
Вроде бы вопрос уже заезжанный, но тем не менее У меня есть функция menu() которая выводит набор возможных действий, а затем спрашивает у пользователя что он хотел бы сделать....
David Golovatin
4
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Карта сайта