Вопрос № 172395: Добрый день, уважаемые эксперты! У меня есть вот такой нестандартный вопрос. Есть имя файла и/или папки. Нужно получить короткое имя (DOS-имя) как это сделать в 1Cv7.7 Заранее спасибо. ...
Вопрос № 172395:
Добрый день, уважаемые эксперты! У меня есть вот такой нестандартный вопрос. Есть имя файла и/или папки. Нужно получить короткое имя (DOS-имя) как это сделать в 1Cv7.7 Заранее спасибо.
Отвечает Яна, Практикант :
Здравствуйте, Vlads_K. Есть функции работы со значениями типа строка: 1. Найти, нужно найти в этой строке последний символ "\". Т.е. номер его позиции в строке. 2. Потом вычислить длину строки с помощью функции СтрДлина 3. Потом с помощью функции Прав, отрезать конец строки длиной (СтрДлина - позиция последнего "\") 4. Полученная подстрока и будет коротким именем файла.
Всё верно, кроме последних 2-х пунктов. Таким способом можно выделить имя файла из полного пути. Но для определения короткого имени DOS такой подход некорректен. Длинные имена файлов обычно в представлении 8.3 содержат первые 6 символов и заканчиваются тильдой и цифрой. Такое имя назначает сама операционная система, лучше использовать её методы.
-----
∙ Отредактировал: Владимир Лазурко, Профессионал
∙ Дата редактирования: 21.09.2009, 13:16 (время московское)
Приложение:
Ответ отправил: Яна, Практикант
Ответ отправлен: 21.09.2009, 08:48
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 254435
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Piter, 3-й класс :
Здравствуйте, Vlads_K. Можно попробывать вот так: Я думаю все понятно: ДлинныйПуть - исходный файл КороткийПуть - DOS имя тогоже файла Файл ДлинныйПуть должен существовать PS в случае русских букв в пути будут определенные сложности. как исправить - пока не знаю. Придумаю - напишу
Приложение:
Ответ отправил: Piter, 3-й класс
Ответ отправлен: 21.09.2009, 09:12
Оценка ответа: 5 Комментарий к оценке: Идея понятна, но у меня при команде Фл = Фо.GetFile(ДлинныйПуть); Система выдаёт ошибку: Фл = Фо.GetFile(ДлинныйПуть); {S:\EVEREST\BASE\EXTFORMS\66.ERT(5)}: :
Что это может быть?
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 254436
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.