![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
Здравствуйте, все.
Я пишу (пытаюсь), программу оптимизации pdf-файлов, на данном этапе прграмма должна вырезать картинки, это все хорошо, руками я такое сделать могу, но нужна программа, а в неё надо загружать эти файлы и как то с ними работать, другое дело блокнот, там открыл поправил, сохранил и все ок, но в делфях пробовал загружать и в memo, richedit и т д загружается далеко не все ( а файлы оч большие десятки млн символов ) может из за этого или из за того что там используется юникод, возможно сущ другие компоненты для работы с таким текстом, или можно без компонент, а как программно с текстом работать. Мне надо(на данном этапе) в этом файле (pdf) находить строки 'obj' для этого надо будет построчно искать в тексте такую комбинацию, но я не могу получить доступ ко всему тексту из за этой кривой кодировки. Кто знает решение данной проблемы помогите(пиво ставлю) Заранее спасибо
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
Смотрел исходники на c# там тож с пдф работают, они использовали какой то file stream, могет у нас есть что то такое? если есть то будет ли он (класс) читать нехорошую кодировку?
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
Да мне друг сказал, что нада использовать какой то класс Stream. А что это и с чем его едят не знаю. Если я буду загружать файлы в эти Stream, то как работать с данными в них?
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Не понятен вопрос...
Ты хочешь просто отобразить PDF-файл, либо его внутренности в RichEdit. Пользуйся TFileStream... Найдёшь в поиске.... -------------------- Ll 2 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Insert, использовать для этих целей Memo несолидно. Проще загнать весь файл в одну большую юникодную строку, и в ней уж искать нужную подстроку. Юникодная строка это WideString. Записать в нее файл можно любым способом, только перед эти необходимо правильно указать ее размер.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
да мне нужны внутренности pdf. попробую сначала через WideString, только файлы бывают оч большие более миллиарда символов, надеюсь Widestring потянет. (а размер widestring в чем задавать и как, просто впервые этот тип использовать буду?). Если нисхляет попробую FileStream.
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
SetLength Ну по идее должно 2-х Гб хватить, но вот только с файлами свыше 200Мб удобнее работать как с отображаемыми в память, при этом скорость будет намного выше, да файл подкачки не будет нужен. Тут уже ограничений нет таких, правда за раз все равно больше 2Гб не удастся отобразить в память. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
Только я не знаю как этой переменной типа WideString присвоить содержимое файла
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Можно и Read только лучше не типизированым. Readbuffer(f, wdestr, filesize); -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
Все таки сделал с TFileStream, но результаты накапливаю в widestring-переменной. Возникает вопрос как обрабатывать потоки TFileStream? Например поиск подстроки в потоке(что то типа ф-ии pos), удаление от сих ... до сих, вставка, обрезка, есть что то подобное для таких обьектов?
Добавлено @ 22:57 Как альтернатива, могу загружать весь поток в переменную widestring и использовать эти процедуры (если они есть?) над ней. Как лучше? или что возможно? --------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
имхо легче считать из фалового потока в string или TstringList ? проще будет искать и т.п.
Добавлено @ 23:03 и имхо widestring здесь не надо , внутреняя структура pdf больше похожа анси символы , имхо -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Лучше так! Не волнуйся есть юникодные аналоги. Компиялтор сам подставит нужную. Может и легче, но для Анси строк, а не юникодных, правда есть юникодный аналог TstringList, но это сторонний компонент. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
Хм а можешь эти аналоги подсказать? --------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 13:17 |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: 1 Всего: 1 |
В начале так и хотел, но string & stringlist не работают с юникодом. При попытке загрузить в них файл или часть его, то в него загружается только та часть которая написана на латинице, и то оч далеко не вся. --------------------
пьяный русский кодер практически непобедим |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |