![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| BDmV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 14.5.2005 Репутация: нет Всего: 1 |
Поможите, плиззз, дайте код для чтения Unicode файла....
Вобщем есть файл писаный в Unicode кодировке, я хочу загрузить его в SynEdit... 1. Стандартные загрузчик SynEdit.Lines.LoadFromFile ничего хорошего не даёт 2. При попытке читать файл с помощью Readln(f,s) а потом строку s приобразовывать в ANSI, тоже ничего хорошего не даёт т.к. зачастую в любом, заранее не известном, месте файла встречается что-то что востпринимается как конец файла 3. Читать файл через BlockRead - очень медленно.. PS. К сожалению др. методов работы с файлами я не знаю... ЗЗЫ. Видел на форуме код http://forum.vingrad.ru/index.php?showtopi...indpost&p=50099 - но он тоже читает не весь файл и вместо русских букв выдаёт '?' |
|||
|
||||
| Петрович |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Это наверное если читать побайтово. А если большими блоками, то это достаточно быстро. А вообще, можешь попробовать что-то вроде:
Соответственно, далее делаешь что-то вроде:
и получаешь в s содержимое файла в ANSI-кодировке. Правда, в некоторых UNICODE-файлах, первые два байта не являются текстом, а признаком порядка байт. -------------------- Все знать невозможно, но хочется |
||||||
|
|||||||
| BDmV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 14.5.2005 Репутация: нет Всего: 1 |
Спасибо за код, но у мя появился вопрос... В какой библиотеке, в Delphi7, искать CheckOSError и sErrorFileOpen?
|
|||
|
||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 20:31 |
|||
|
||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 20:31 |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Таких нет, это из моей библиотеки. Но их суть такова: CheckOSError - нужна для проверки на ошибки; sErrorFileOpen - константа, строки с сообщением об ошибке; ExMsg - добавляет сообщение к тексту текущего исключения; В общем, не сложно самому сделать Но, если лениво, то можешь найти их в моем модуле awString. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| BDmV |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 14.5.2005 Репутация: нет Всего: 1 |
Вот спасиба Да и не подходит он к моей задаче, т.к. там конец абзаца заканчивается кодом 0D0A00, вместо 0D000A00 Вощем здесь можно только читать файл самому и обрабатывать полученный текст перед тем как загнать его в SynEdit... PS. Хотя мож есть и др. вариант, но я об этом пока не знаю.. |
|||
|
||||
| Guest |
|
||||
|
Unregistered |
ну вобщем то так и должно быть. Если файл начинается с других байтов, то это не Unicode - text file
ну так считывай вручную. Никакие стандартные средства тебе не помогут - у тебя же не текстовый файл.. |
||||
|
|||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Спасибо Петрович, я в свой модуль uutils, обязательно добавлю эту функцию. Лаконичная реализация.
-------------------- |
|||
|
||||
![]()
|
| Правила форума "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. |