![]() |
![]() |
![]() |
|
Как из строки с полным именем файла выделить имя файла | ☑ | ||
---|---|---|---|---|
0
Serg_1960
27.08.08
✎
17:35
|
Сам файл мне не нужен, работать с ним мне не надо. "По буковкам" разбираться :о(( Ничего "умнее" не придумал кроме:
Файл = Новый Файл(ПолноеИмяФайла); ИмяФайла = Файл.Имя; Такой вариант "прокатит" или лучше с ним не связываться? А если вдруг юзверы имя файла горбатое напишут (типа \\192.168.0.123\Хрен знает какое\Имя.без расширения.txt) тогда как? |
|||
1
IronDemon
27.08.08
✎
17:40
|
Процедура ПолучитьКаталогИИмяФайла(Знач ПолноеИмяФайла, ИмяКаталога, ИмяФайла) Экспорт
// находим последний с конца "\" все что до него - это путь, после - имя НомерПозиции = СтрДлина(ПолноеИмяФайла); Пока НомерПозиции <> 0 Цикл Если Сред(ПолноеИмяФайла, НомерПозиции, 1) = "\" Тогда ИмяКаталога = Сред(ПолноеИмяФайла, 1, НомерПозиции - 1); ИмяФайла = Сред(ПолноеИмяФайла, НомерПозиции + 1); Возврат; КонецЕсли; НомерПозиции = НомерПозиции - 1; КонецЦикла; // так и не нашли слешей, значит все- это имя файла ИмяФайла = ПолноеИмяФайла; ИмяКаталога = ""; КонецПроцедуры |
|||
2
Serg_1960
27.08.08
✎
17:44
|
(1) Спасибо. Принято :о)
А что, кроме метода "по буковкам" нет другого способа "вытащить" имя файла? |
|||
3
Anonimka
27.08.08
✎
17:51
|
Ты же не сказал, откуда его вытаскивать. В теме четко написано - из строки с полным именем файла... А из строки - только по буковкам :)
|
|||
4
Serg_1960
27.08.08
✎
17:52
|
Эй народ! Не спите, отвечайте :о)
Как проверить "допустимость" имени файла (без его пробного открытия или создания)? |
|||
5
Serg_1960
27.08.08
✎
18:02
|
(3) Спасибо. Принято :о) Все правильно: как спросил так и ответили... а хотел другое... не только выделить, но и проверить на "запрещенные" символы :о(
Ыыы... не можешь говорить, - иди работай... |
|||
6
Anonimka
27.08.08
✎
19:01
|
Сергей, а зачем позволять пользователям вводить имя ручками? По Вашим вопросам не очень понятно, что именно Вы пытаетесь сделать... Я бы, к примеру, использовала ДиалогВыбораФайла с фильтром "Текст(*,txt)|*.txt" - или какое расширение нужно - в момент ввода, а не отлавливала ошибки потом.
|
|||
7
Злопчинский
27.08.08
✎
19:12
|
(4) типа так...
Функция глБВК_НормализоватьСтроку(Знач Источник, Знач НормальныйШаблон="\/:*?""<>| ", Знач Нормализатор="#") Экспорт Если Найти(НормальныйШаблон,Нормализатор) <> 0 Тогда Нормализатор = ""; КонецЕсли; Источник = СокрЛП(Источник); Дл = СтрДлина(НормальныйШаблон); Для ы=1 по Дл Цикл Источник = СтрЗаменить(Источник,Сред(НормальныйШаблон,ы,1),Нормализатор); КонецЦикла; Возврат Источник; КонецФункции //глБВК_НормализоватьСтроку() .. если ИмяФайла=глБВК_НормализоватьСтроку(ИмяФайла) тогда нормуль |
|||
8
Serg_1960
28.08.08
✎
10:04
|
Сорри, коллеги: в очередной раз инет слетел. Спасибо за участие и сочуствие :о)
(6) Спасибо. Отвечаю на Ваш вопрос "Зачем это надо": К документам надо было "добавить" файлы. В хранилище не хотелось-бы тащить этот "мусор" :о( Сделал регистр сведений (пользователь, компъютер, ссылка на документ, полное имя файла) и внешней печатной формой все это "прицепил" к документам. Сами файлы - вне базы (в общих ресурсах лежат). Имя файла - через ВыборФайла. НО: юзер может и "ручками" внести имя файла, которого еще нет. Зачем: для того что-бы другие юзеры потом туда добавляли информацию (если нужно будет). Вот в этом-то и "засада": ленивые юзверы имя файла "заполняют" через буфер, воруя его откуда попало :о) Особенно сильно "достал" Инфо-бухгалтер (бухи его до сих пор используют), который через буфер передает символы форматирования текста, да и другие программы не лучше... (7) Спасибо. Скопировал к себе. Буду использовать когда возникнет потребность в проверке шаблона файлов... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |