OLE с Word и файлы с русскими именами

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Zaharius
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 06.12.2008 (Сб) 14:54

OLE с Word и файлы с русскими именами

Сообщение Zaharius » 10.12.2008 (Ср) 1:23

На форме контейнер для Word с именем OLE
Имеется два файла с русским и английскими именами При загрузке "англоязычного" всё нормально; при загрузке "русского" - выбивает ошибку "Unable to access source document" (Если я правильно понимаю ненашенский: "Нет доступа к документу с данными")

Конкретней:

FilePath1="C:/test.doc"
FilePath2="C:/тест.doc"

'При:
OLE.CreateEmbed strPath1 ' Всё ОК
'При
OLE.CreateEmbed strPath2 ' Беда

Как быть? Ведь русскоговорящие юзеры, юзая Word, обычно сохраняют файлы с русскими именами?

Alprog
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 127
Зарегистрирован: 15.05.2008 (Чт) 14:21
Откуда: Владивосток

Re: OLE с Word и файлы с русскими именами

Сообщение Alprog » 10.12.2008 (Ср) 10:55

Как быть?

Можно переименовать файл, обработать, по завершению работы проги, переименовать обратно :)

Zaharius
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 06.12.2008 (Сб) 14:54

Re: OLE с Word и файлы с русскими именами

Сообщение Zaharius » 10.12.2008 (Ср) 15:25

Я думал о таком варианте, но есть одна проблема - нельзя переименовать весть путь к файлу. Если в иерархии встречается хотя бы одна дирректория с русским именем (напр. "Мои документы") - этот вариант не подойдёт.
Можно было бы перед обработкой исходный документ копировать с англоязычным именем в корневой каталог (Напр. "C:/.../Мои документы/тест.doc" d "C:/test.doc", но как-то всё в совокупности топорно получается. Может всё-таки есть другое решение?
P.S. И почему майкрософтовцы, лояльно относящиеся к чужим языкам, в этом случае так оплевали Великий и Могучий? :)

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: OLE с Word и файлы с русскими именами

Сообщение iGrok » 10.12.2008 (Ср) 17:16

Дурацкий вариант, "пальцем в небо". А что если ему строку в unicode, а не в ansi отдавать?
label:
cli
jmp label

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: OLE с Word и файлы с русскими именами

Сообщение alibek » 10.12.2008 (Ср) 20:30

Zaharius писал(а):FilePath1="C:/test.doc"
FilePath2="C:/тест.doc"

А почему использован прямой слэш?
Lasciate ogni speranza, voi ch'entrate.

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Re: OLE с Word и файлы с русскими именами

Сообщение Vi » 11.12.2008 (Чт) 15:17

Мой ФАР говорит, что такой, русский, файл имеет короткое имя CA0C~1.DOC, которое можно загрузить в Ворд.

PS
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

Private Sub Form_Load()
Dim s As String
s = String(256, " ")
GetShortPathName "C:\TMP\ТЕСТ.DOC", s, 256
OLE1.CreateEmbed s
End Sub
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: OLE с Word и файлы с русскими именами

Сообщение Alec » 11.12.2008 (Чт) 20:18

Vi писал(а):Мой ФАР говорит, что такой, русский, файл имеет короткое имя CA0C~1.DOC

Не факт. Такие имена (в виде символьной записи шестнадцатиричных чисел, кстати), будут только на NTFS, и то если не настроено allowextchar (я, кстати, именно так и настраиваю - приходится часто работоать с ДОС прорграммами и нужно хотя-бы часть имени файла видеть) (в XP Prof как минимум). В FAT имена даже на кириллице будут просто обрезаться, но оставаться на кириллице.
Иногда лучше вовремя остановиться...
И начать заново!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: OLE с Word и файлы с русскими именами

Сообщение tyomitch » 11.12.2008 (Чт) 20:34

Alec писал(а):В FAT имена даже на кириллице будут просто обрезаться, но оставаться на кириллице.

Даже если системная кодовая страница не 1251? ;-)
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 34

    TopList  
cron