|
Комментарии | #1 Автор: SergeCpp (2013.09.10 16:51) | Раздел: Утилиты для работы с ^текстом^
vs
Разбиение ^двоичных^ файлов
(хоть и "можно ... текстовые файлы") |
#2 Автор: Nika (2013.09.10 21:49, изменений: 2, 2013.09.10 21:51) | SergeCpp, когда-то давным-давно эта утилита была сделана именно для аккуратного разрезания текста программ на Си перед редактированием их в IDE TurboC v.2.0. Поскольку чтение/запись осуществляется в "двоичном" режиме, оказалось, что и двоичные файлы тоже очень нормально режутся на куски. Сейчас я эту вещь использую поровну для текстовых и для двоичных файлов. |
#3 Автор: SergeCpp (2013.09.10 22:46) | Нечто схожее: http://old-dos.ru/index.php?page=files&do=show&id=3941#5958
Такого рода двоичные функции мне нужны были считанное число раз, Hiew всегда помогал. Текстовые -- вроде бы даже ни разу (хотя это зависит от того, что вы имеете в виду под "аккуратного"), а попросту -- в редакторе можно.
|
#4 Автор: Nika (2013.09.11 00:26) | SergeCpp, нет, та программа для выдирания одного куска "ОТ И ДО". Эту - можно, например, использовать для того, чтобы разбить на сектора имидж дискеты. Разрезает безошибочно и без искажений.
В случае с текстом: имеем файл размером 1.5Мб - а нужно порезать его на кусочки размером ~30Кб - и так, чтобы разрыва строк не было. Для этого - ключ "-L". |
#5 Автор: SergeCpp (2013.09.11 00:54) | А как определяется место, где разделять, в случае текста? Вот, скажем, у нас текст в 1 мегабайт, позиционировали мы указатель на 30 кб, а что дальше? Ясно, что нужно искать начало строки, в которой мы находимся, а если она от начала файла идёт? Это, конечно, редкий случай.
Вот, кстати, схожая программа, и кое-какие проблемы там обнаружились (обратите также внимание на размер программы): http://forum.ixbt.com/topic.cgi?id=23:40715#9
|
#6 Автор: Nika (2013.09.11 01:17, изменений: 9, 2013.09.11 01:50) | SergeCpp, место, где разделять - в конце строки <cr,lf> при приближении к заказанному в "-s" размеру менее чем на "-Lxxx" (xxx= 2000 символов MAX.). Или безусловно при превышении этого размера строки "-Lxxx" (2000 MAX.) и размера файла, заданного в "-s". Это только при ключе "-L".
Сходил по ссылке. Это не про меня ;). Моя прога работает. И я не считаю размер пограммы "оффтопом". Вообще, как только раздаются подобные заявления (про оффтоп из-за размера), для меня это сигнал к прекращению обсуждения.
Прога работает. Но только, поскольку это DOS-программа, не знаю, как она поведёт себя с файлами размером более 4-х Гб. Просто не пробовал. Хотя в ней выполняется последовательное чтение... Должно работать. Только куски не должны быть по размеру более 4 Гб (DWORD). Впрочем, задавшись целью, можно сделать счётчик размером не DWORD, а 2*DWORD, и будет работать. Думаю...
Эта тема разрезания текста перекликается с другой программой моего же замеса - Line2000.exe: http://old-dos.ru/index.php?page=files&mode=files&do=show&id=3153 В той программе есть ключ "-t" специально для генерации оооочень длинной строки для тестирования потом её разрезания. Там максимальная длина строки 2000 - максимум для MEL.EXE и KEDIT.EXE.
Протестируйте, пожалуйста, обе эти проги. Если будет негативный отзыв, я не обижусь :). |
#7 Автор: SergeCpp (2013.09.11 02:25) | Как-нибудь потестирую, позже.
P.S. Всё же сюрреализм: размер EXE ME 7 (!!!) меньше (!!!), чем... страх и ужас, что же дальше-то будет...
|
#8 Автор: SergeCpp (2013.09.11 02:32) | ...вспомнился один разговор на схожую тему (размер): http://rsdn.ru/forum/life/3787658.flat#3787658 |
#9 Автор: Nika (2013.09.11 02:43, изменений: 3, 2013.09.11 03:15) | А дальше будет... вообще что - не знаю, а тот парень начнёт работать в... автосервисе и забудет про всех этих противных программ как кошмарный сон.(Я оптимист).
Да, и про "инсталлятор" я помню - почитал тогда и развеселился )).
|
| |
|