
Последние записи
- Число различных чисел (Microsoft Office Excel)
- Убить процесс
- Конвертер heic в jpg
- Проверка на шестнадцатеричный формат записи
- Отдать пользователю файл с помощью file_get_contents()
- Написать собственую функцию operator[] для битов
- Проблема с движением 2D человека
- OpenGl.Создание винтовой лестницы
- Склеить несколько файлов в один
- Windows 10 сменить администратора

Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
28th
Сен
Как нарисовать две перпендикулярных линии(уголок)?
Вот как на иллюстрации, только без заливке и наклонной линии.
26th
Сен
Сравнение текстовых файлов \ Варианты
Строки текстового файла 1.txt необходимо проверить на совпадение — со строками текстового файла 2.txt. И уникальные строки, которых нет в файле 1.txt, записать в файл 3.txt.
К примеру:
Tекст в первом файле — 1.txt
Test1
Test2
Test3
Test4
Test5
Текст во втором файле — 2.txt
Test1
Test2
Test3
Test4
Test5
Stroka1
Stroka2
stroka3
После сравнения, результат в третьем файле — 3.txt
Stroka1
Stroka2
stroka3
Вот мои решения и их недостатки =>
Вариант №1 (Загрузка в память):
var
i: integer;
s1, s2: TStrings;
begin
s1 := TStringList.Create;
s2 := TStringList.Create;
Try
s1.LoadFromFile('1.txt');
s2.LoadFromFile('2.txt');
for i := s1.Count - 1 downto 0 do
if s2.IndexOf(s1) >= 0 Then
s1.Delete(i);
s1.SaveToFile('3.txt');
Finally
s1.Free;
s2.Free;
End;
end;
Проблема в следующем: Если файл размеров 500 мегабайт то вся память забивается и выскакивает ошибка — Out of memory. Ну это само собой понятно поскольку я загружаю и обрабатываю все в памяти.
Вопрос: Может как то можно оптимизировать код в этом варианте, кто что может подсказать ?
Вариант №2 (Чтение построчно):
var
f1, f2, f3: textfile;
s1, s2: string;
b: boolean;
begin
assignfile(f1, '1.txt');
assignfile(f2, '2.txt');
assignfile(f3, '3.txt');
rewrite(f3);
reset(f1);
while not eof(f1) do
begin
readln(f1, s1);
reset(f2);
b := true;
while not eof(f2) and b do
begin
readln(f2, s2);
if s2 = s1 then
b := false;
end;
if b then
writeln(f3, s1);
end;
closefile(f1);
closefile(f2);
closefile(f3);
end;
Проблема в следующем: Очень и очень медленно работает, ну и тут принцип понятен:
1.Читаем строку из 1.txt файла
2.Открываем 2.txt, проходим по нему ищем совпадение
3.Закрываем 2.txt файл
И так для каждой строки из первого файла. Это куча времени и затрат.
Вопрос, скорее всего утверждение: В этом варианте, само собой понятно что далеко не уедешь.
П.С: Подскажите еще варианты, при использования которых, можно обрабатывать файлы до 1 гигабайта, не загружая память и при этом, иметь, хотя бы, среднюю скорость обработки ?
24th
Сен
Определить количество заданных точек (x,y)
включая ее границы,
где x = x0 + ih;
y = y0 + ih;
x0 = 0,5; y0 = 1,5;
h = 0,1; i = 1(1)10.
19th
Сен
DirectShow отзеркалить или перевернуть изображение
Как, используя DirectShow, отзеркалить или перевернуть изображение? Есть ли для этого какой-нибудь интерфейс или фильтр?
Если делать это через SampleGrabberCallback, то видео тормозит.
18th
Сен
Создание видеофайла из множества BMP(JPEG) файлов
Как создать видео ряд из картинок (640*480) средствами Delphi XE5 — XE7… Цель моей программы — периодическая съёмка (1 раз в 10 сек) объекта и сохранение снимка на диск, а при нажатии на кнопку — из этих снимков собрать видеофайл… Съемку по таймеру я уже сделал, даже прикрутил «датчик движения» (пока не знаю зачем)… А вот со сборкой видеоряда полная засада… ни когда не имел дело с видео, кроме плееров…
17th
Сен
Особенности виртуального ListBox при отображении больших объемов информации
В программе виртуальный ListBox для отображения списка терминов, которые хранятся в обычном текстовом файле (структура файла «термин» табуляция «перевод», в листбоксе отображается только «термин»).
Когда словарь небольшой, скажем, несколько сотен терминов, — все гут.
Но когда терминов порядка сотни тысяч (переделал какой-то готовый толковый словарь, там термины от «А» до «Я») невозможно прокрутить ListBox до конца, где-то на середине (буква «О») слова начинают повторяться с «А».
Как бороться?
16th
Сен
Прозрачность тайлсета в TPNGImage
Не могу разобраться, почему нет прозрачности при отрисовке на канве.
Загружаю тайлсет tileset.png, в котором есть прозрачность в PNGImage с именем Tileset. Далее рисую на канве компонента PNGImage с именем Surface этой процедурой:
procedure TForm1.DrawTile(const X, Y, Index: Integer);
begin
Surface.Canvas.CopyRect(Bounds(X * TileSize, Y * TileSize, TileSize,
TileSize), Tileset.Canvas, Bounds((Index mod TilesetWidth) * TileSize,
(Index div TilesetWidth) * TileSize, TileSize, TileSize));
end;
…вот так:
procedure TForm1.FormPaint(Sender: TObject);
var
X, Y: Integer;
begin
for Y := 0 to MapHeight - 1 do
for X := 0 to MapWidth - 1 do
begin
DrawTile(X, Y, Map[lrGround][X][Y]);
DrawTile(X, Y, Map[lrObject][X][Y]);
end;
Canvas.Draw(0, 0, Surface);
end;
Ожидается правильная отрисовка с альфа-каналом, но не тут то было.
15th
Сен
Открыть указанную папку в проводнике
Хочу в программе при нажатии кнопки чтобы в проводнике открывал необходимую мне папку. Как это лучше сделать, есть ли такая команда (если да, то напишите пример использования)?
13th
Сен
Текст по картинке
Загружаю jpg в Jmage, пытаюсь по ней вывести текст — ругается при выполнении. А как же быть ? Картинка д.б. одна, а тексты разные. Впрочем, не в картинке дело — пытаюсь залить Jmage путем FillRect — ругается при выполнении все равно.
(читать всё…)
Облако меток
реестр ассемблер timer TBitMap SaveToFile ShellExecute программы массив советы word MySQL SQL ListView pos random компоненты дата LoadFromFile form база данных сеть html php RichEdit indy строки Win Api tstringlist Image мысли макросы Edit ListBox office C/C++ memo графика StringGrid поиск canvas файл Pascal форма Файлы интернет Microsoft Office Excel excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту

пеллетные котлы

Пеллетный котел Emtas

Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)