Имя: Пароль:
1C
 
Как из строки с полным именем файла выделить имя файла
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) Спасибо. Скопировал к себе. Буду использовать когда возникнет потребность в проверке шаблона файлов...
Основная теорема систематики: Новые системы плодят новые проблемы.