Выпуск № 1407 от 19.07.2009, 22:05
Администратор рассылки: Калашников О.А., Руководитель
В рассылке: подписчиков - 562, экспертов - 193
В номере: вопросов - 1, ответов - 1
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
Вопрос № 170440: Вопрос по работе с переменными OleVariant. Для сохранеия файла, созданного в Word через OLE используется процедура: ActiveDocument.SaveAs(V, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam...
Вопрос № 170440:
Вопрос по работе с переменными OleVariant. Для сохранеия файла, созданного в Word через OLE используется процедура:
ActiveDocument.SaveAs(V, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam); Здесь V - имя файла, передаваться должно в виде OleVariant переменной. Проблема в том, что если в имени файла присутствуют символы кириллицы,
в процедуру передается не заданное мной имя, а некая абракадабра.
Так работает: V := 'D:\Path\File.doc' Так не работает: V := 'D:\Path\Мой файл.doc'
Отвечает Зарубин Дмитрий Сергеевич, 2-й класс :
Здравствуйте, Виталий Гробштейн! Дело в том, что используется юникод (в Delphi тип WideChar). Попробуйте код:
procedure TForm1.SaveFile; var Path: string; WidePath: array of WideChar; begin Path:='D:\test\примеры\юникод.doc'; StringToWideChar(Path, // Путь (обычная строка) Addr(WidePath), // Указатель на массив Length(Path)*sizeof(WideChar)); // и его размер. Doc1.SaveAs(WidePath); // Сохранение end;
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.