Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как лучше записать кириллические имена файлов в TStrings? / 18 сообщений из 18, страница 1 из 1
27.10.2017, 15:15:51
    #39543348
ziper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
Проблема такая: результат OpenDialog.Files надо записать в строки ListBox, а позже потом по ним обратиться к файлам. Так как имена могут оказаться уникодовыми, например, кириллицей, то в TStrings, разумеется, идут вопросительные знаки.
Есть ли какая-нибудь хорошая функция Delphi или WinAPI, чтобы сконвертить названия файлов во что-нибудь универсальное, не зависящее от кодировки клиента, типа как кириллические URL кодируются?
Заранее спасибо!
...
Рейтинг: 0 / 0
27.10.2017, 15:27:42
    #39543363
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
Делфи какая? 7?
...
Рейтинг: 0 / 0
27.10.2017, 15:33:39
    #39543367
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
ziper,

Скажи, как ты эти имена файлов получаешь.
...
Рейтинг: 0 / 0
27.10.2017, 15:35:47
    #39543370
Любезный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
авторТак как имена могут оказаться уникодовыми, например, кириллицей, то в TStrings, разумеется, идут вопросительные знаки.
Это не в TStrings идут вопросительные знаки. Используй юникодную Delphi, и проблемы не будет. Или хотя бы Lazarus, у которого LCL юникодный, а в TStrings ему без разницы, какая кодировка будет.
...
Рейтинг: 0 / 0
27.10.2017, 15:38:40
    #39543372
ziper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
Delphi 5, upgrade невозможен
...
Рейтинг: 0 / 0
27.10.2017, 15:40:45
    #39543373
ziper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
Сейчас работает просто так
Код: pascal
1.
2.
if odAttach.Execute then
lbFails.Items.AddStrings(odAttach.Files);
...
Рейтинг: 0 / 0
27.10.2017, 15:42:22
    #39543376
ziper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
Есть JCL/JVCL, Synapsis библиотеки
...
Рейтинг: 0 / 0
27.10.2017, 15:50:09
    #39543385
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
ziperСейчас работает просто так
Код: pascal
1.
2.
if odAttach.Execute then
lbFails.Items.AddStrings(odAttach.Files);


Что за lbFails?
...
Рейтинг: 0 / 0
27.10.2017, 15:55:12
    #39543390
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
чччД,

ListBox небось.
...
Рейтинг: 0 / 0
27.10.2017, 16:10:57
    #39543401
ziper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
ListBox и OpenDialog там
...
Рейтинг: 0 / 0
27.10.2017, 16:21:01
    #39543416
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
С каких пор неюникодный TOpenDialog возвращает юникодные строки.
...
Рейтинг: 0 / 0
27.10.2017, 16:32:39
    #39543424
ziper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
OK, логично, т.е. названия режутся уже на opendialoge. И что можете посоветовать? Менять и диалог и листбокс на уникодовые аналоги?
...
Рейтинг: 0 / 0
27.10.2017, 16:45:21
    #39543433
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
ziper,

что-то я не верю в такие чудеса.

Создай отдельное крошечное приложение, повторяющее "проблему".
---
И назови версию Windows, пожалуйста.
...
Рейтинг: 0 / 0
27.10.2017, 16:57:31
    #39543436
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
ziper,

Используй xxxxxxxW() функции для получения имен файлов. Потом перекодируй их MultiByteToWideChar()/WideCharToMultiByte() в Ansi и пихай свои имена файлов в ListBox. При обращении к файлам из ListBox - перекодируй обратно, получая оригинальное имя файла и обращайся к файлу.

P.S. От твоего TOpenDialog() возможно придется отказаться, и слепить свой аналог.
...
Рейтинг: 0 / 0
27.10.2017, 17:10:55
    #39543446
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
ziperDelphi 5, upgrade невозможенИспользовать TNT Unicode Controls не предлагать?
Там есть юникодный аналог TOpenDialog.
...
Рейтинг: 0 / 0
27.10.2017, 17:16:35
    #39543450
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
ziper,

Может Вам нужно указать в настройках Windows кодовую страницу для неюникодных программ?
...
Рейтинг: 0 / 0
27.10.2017, 17:23:14
    #39543452
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
А ведь за прошедших 18 лет можно было бы и найти время и проапгрейдить проект до юникода.
...
Рейтинг: 0 / 0
27.10.2017, 17:33:19
    #39543460
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше записать кириллические имена файлов в TStrings?
rgreat,

Ну тут могут быть нюансы. У меня есть живой проект на D6, которому скоро 15 или 16 лет будет. Переписать его за вменяемые сроки - нереально. К тому же там кучка библиотек от других производителей, которые давно прекратили поддержку. Вот и приходится раз в полгода вносить туда мелкие изменения и правки, а не перетаскивать все это хозяйство в юникод. Так и живем :(
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как лучше записать кириллические имена файлов в TStrings? / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]