Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/84: Рейтинг темы: голосов - 84, средняя оценка - 4.87
Otyx

Как Присоединять Файлы С Русскими Именами?

02.06.2013, 16:33. Показов 16471. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Поможите, люди добрые. Сам я программист начинающий и все такое.
Нужно присоединять в поле RTF файл. Набросал код - все работает, но только до тех пор, пока имена файлов английские.
Открывается текстовый файл со списком файлов, которые должны быть сохранены в документы:
Line Input #fileNum%, FileForSave
If FileForSave<>"" Then
Set doc = New NotesDocument( db )
Set rtitem = New NotesRichTextItem (doc, "IncomingFile")
Set obj = rtitem.EmbedObject (EMBED_ATTACHMENT, "", PathFromRead &"\" & FileForSave) - тут возникает ошибка
doc.Form = "Mail"
Call doc.Save (True,False)
Как только попадается русское имя файла - вместо реального имени файла в FileForSave получается абракадабра, ну и, естесственно, потом файл никуда не вставляется.
Нашел на IBM вопрос с той же ошибкой:
http://www-10.lotus.com/ldd/nd85forum.nsf/...enDocument#main
И похожее:
http://www-01.ibm.com/support/docview.wss?uid=swg21284370
Но ответов нет.
Можно что-нибудь сделать?
Пока приходит в голову только архивировать файл в англ. имя rarом перед тем как приаттачивать в поле, но это как то громоздко, хотелось бы обойтись средствами Лотуса.
Неужели Лотус не всемогущ?
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.06.2013, 16:33
Ответы с готовыми решениями:

Трабл с русскими именами файлов
Драсти. народ. В lotus script любые операции с файловой системой (open, copy, del...) не срабатывают с русскими именами файлов и...

В IIS5 не работают ссылки на файлы с русскими именами.
В IIS5 не работают ссылки на файлы с русскими именами. В чем может быт проблема?

Как на vbs скопировать файл из папки в папку, с русскими именами папок?
Здравствуйте. Нужно скопировать файл на vbs из папки Загрузки на диск C:\ Выдаёт ошибку &quot;Неправильный путь.&quot;Как кирилицу в...

16
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
02.06.2013, 16:54
В Preference клиента что стоит?
0
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 1,063
02.06.2013, 17:43
И какая кодировка используется в текстовом файле? Мож, он в UTF-8?
ЗЫ. А в дебаггере строку нормально показывает?
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
02.06.2013, 20:39
кодировка в файле отличается от платформенной
скорее-всего - в префайх, кот. указал savl стоит что-то из европейского (судя по кракрзябрам), а в файле - вин1251
Мыш юникод далбы вопросики
0
Otyx
03.06.2013, 12:02
Всем спасибо.
Нашел уже причину, да, список текстовых файлов создается командой dir, поэтому он в cp866.
Исправил вставкой команды перед созданием спиcка файлов chcp 1251 - все заработало.

Не понял (интересно было бы узнать на всякий случай) как в Лотус засасывать файлы в cp866. Пробовал ставить при открытии файла "Charset = ASCII" - не помогло.

Обнаружил ошибку в хелпе Домино 8.5.1 в разделе "MIME Charset Names" - всюду "Cryllic languages". Загадочные индусы.
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
03.06.2013, 12:11
использовать NotesStream, с указанием кодировки (Open)
0
Otyx
10.06.2013, 15:04
Помогите, пожалуйста, еще по одной ошибке.

Когда имена файлов стали длинными - перестал работать EmbedObject
Set obj = rtitem.EmbedObject (EMBED_ATTACHMENT, "", FileForSave)
возникает ошибка 4225 File <имя файла> not found.
Экспериментальным путем установил, что если имя файла содержит русские буквы, и длина общего пути до 174 символов - работает, а вот если 175 - уже не работает.
Это из-за двухбайтовой кодировки русских букв?
Очень криво, т.к. пользователи выкладывают файлы в папки, и ОС это позволяет. Откуда им знать, что Лотус берет только 174 символа? Или я что то не так делаю? Может как-нибудь, кроме как орг. мерами обходится?
Насчет 174 символов - поторопился. Иногда и меньше не схватывает (видимо, в зависимости от к-ва русских букв).
Поставил ограничение на 128 символов пока.
А официально сколько?
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
10.06.2013, 16:42
на винде официально полный путь 256 символов.
http://www-01.ibm.com/support/docview.wss?uid=swg21085908
WinApi до сих пор дает ограничение полного пути 260 символов, если пути в Unicode - ограничение в 32Кб буфера.

Добавлено:


Если вкратце, то да, существует в WinAPI ограничение на максимальную длину пути MAX_PATH, равная 260 символам. Обойти его можно, обращаясь к файлам/папкам через префикс \\?\ (максимальная длина пути в таком случае - 32 767 символов). То есть, например, mkdir "\\?\C:\very-very-very\long-long\path\filename.ext"
Если в начало пути поставить \\?\, то путь будет в Unicode и будет ограничен 32Кб (про 32767 символов ошибка.)
0
Otyx
10.06.2013, 17:05
savl
Спасибо табе, белая шамана!
Пойду пробовать.
У меня, правда, не save, а наоборот attach к документу, но может и тут сработает.
Не, c аттачем такое не сработало, увы.
Otyx
12.06.2013, 12:09
Точно помню, что где то читал, но никак не найду где? То что Лотус скрипт может обрабатывать файлы с русскими именами не в 256 символов как винда, а чуть ли не 80?
Кто помнит, есть ли такое ограничение?
Otyx
12.06.2013, 12:25
О, нашел вот тут:

Черт, похоже единственное пока решение - создавать bat-ник, который будет копировать файл в папку с более коротким именем и из нее уже аттачить.
Ну изврат же ...?
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
12.06.2013, 12:48
Olex
Решайте уровнем регламента. Дайте распоряжение крепить файлы с диска C или D из спецпапки.
Не усложняйте и не решайте то, что не требует технического решения.
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
12.06.2013, 13:05
Цитата Сообщение от Olex
О, нашел вот тут:

Черт, похоже единственное пока решение - создавать bat-ник, который будет копировать файл в папку с более коротким именем и из нее уже аттачить.
Ну изврат же ...?
дебилизмы видовс + индусы ИБМ - это уже изврат, а хранение файлов в сложных путях и русскими именами - это изврат в N степени
сталкиваюсь с этим ежедневно - на файлопомойке в 10-ок теров хранится куча г-на, кот. теперь не в силах понять и вспомнить к-л, поиск невозможен (вследствии неумения юзверей давать метатеги)
0
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 1,063
12.06.2013, 13:28
Черт, похоже единственное пока решение - создавать bat-ник
Либо через Win API - CopyFile...
0
Otyx
12.06.2013, 16:39
Цитата Сообщение от savl
Olex
Решайте уровнем регламента. Дайте распоряжение крепить файлы с диска C или D из спецпапки.
Не усложняйте и не решайте то, что не требует технического решения.
Не уверен, что не требует.
С точки зрения людей... понять то можно.
Если пользователь может средствами ОС создать файл и положить его на диск именно используя общий путь до 256 символов, то логично ждать, что и другими программами (в том числе Лотусом) это будет нормально обрабатываться.
Ведь никакого предупреждения пользователю проводник об ошибке не сообщает.
Вставил батник, все обошел.
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
12.06.2013, 17:24
Ведь никакого предупреждения пользователю проводник об ошибке не сообщает.
Проводник и не сообщит, а тот же файл диалог на Java или в другой проге еще как ругнется.
Ожидать можно чего угодно, но есть "технические ограничения".
Этот батник будет работать до первого неWin пользователя.
Не забывайте про запрещенные символы в именах файлов, их тоже надо будет корректировать.
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
12.06.2013, 17:43
Кстати, прекрасно работает:

LotusScript
1
{\\?\} & files(0)
Attach без проблем.
Если в пути к файлу нет пробелов, с пробелами не пашет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.06.2013, 17:43
Помогаю со студенческими работами здесь

Картинки с русскими именами
Сервер Apache (Unix) Как при помощи PHP открыть картинку с русским наименованием Например ПЕ0001.jpg или ГП2001.jpg

Сортировка файла с русскими именами
Как отсортировать? потому как обычная сортировка допускает ошибки и сортирует не в точности с алфавитом. а,б,в,г,х,д,е,щ... и т.д.

проблема с русскими именами файлов
У меня возникла вот такая интересная проблема: Проблема с руским именем файла. Я написал web-приложение на Visual Basic 6.0. Использую...

Фильтрация DGV с русскими именами колонок
Ребят, ни как не могу понять в чем проблема. Вообщем сейчас датагридвью заполняется и фильтруется так: var prop = IPDynamic.PingIP; ...

Лог копирования папок с русскими именами
надо скопировать несколько файлов и занести эти операции в протокол. При записи в протокол если папка названа по русски, то она...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru