Вход | Регистрация


1С:Предприятие ::

Метки: 

Как обрезать строку, чтобы получилось вот так...

Я
   IBTM
 
27.12.12 - 14:08
С наступающим!

Имею строку текста (реквизит "ПутьКФайлу":
C:\Documents and Settings\Рабочий стол\Нужный фрагмент.xlsx

Мне нужно обрезать таким образом что бы остался только "Нужный фрагмент". Причем, все что до "Нужный фрагмент" может меняться. Ни одной внятной функция для строки это провернуть не получится. Может есть другой путь? Через комбинацию функций...
 
 
   Maxus43
 
1 - 27.12.12 - 14:09
// Выделяет из полного пути к файлу его имя (набор символов после последней \).
 
//
 // Параметры
 
//  ПутьКФайлу     – Строка, содержащая имя файла, неважно с именем каталога или без.
 //
 
// Возвращаемое значение:
 //   Строка – расширение файла.
 
//
Функция ПолучитьИмяФайлаИзПолногоПути(Знач ПутьКФайлу) Экспорт
    
    ИмяФайла = ПолучитьЧастьСтрокиОтделеннойСимволом(ПутьКФайлу, "\");
    Возврат ИмяФайла;
    
КонецФункции
   Maxus43
 
2 - 27.12.12 - 14:09
внезапно?
   НЕА123
 
3 - 27.12.12 - 14:10
СтрЗаменить + Символы.ПС + последняя строка = "Нужный фрагмент"
   Maxus43
 
4 - 27.12.12 - 14:10
Функция ПолучитьРасширениеФайла(Знач ИмяФайла) Экспорт
    
    Расширение = ПолучитьЧастьСтрокиОтделеннойСимволом(ИмяФайла, ".");
    Возврат Расширение;
    
КонецФункции

и т.д.

куча такой мелкой фигни в типовых, крути-верти
   samozvanec
 
5 - 27.12.12 - 14:10
(2) гыгыгы 
 // Выделяет из полного пути к файлу его имя (набор символов после последней \).
 
 
 //
 
// Возвращаемое значение:
 
 //   Строка – расширение файла.
   le_
 
6 - 27.12.12 - 14:12
Ф = Новый Файл("C:\Documents and Settings\Рабочий стол\Нужный фрагмент.xlsx");
Сообщить(Ф.ИмяБезРасширения);

   НЕА123
 
7 - 27.12.12 - 14:13
(0)
по честному - так.
ВыбФайл = Новый Файл(ВыбранноеИмяФайла);
и делай что надо.
   Maxus43
 
8 - 27.12.12 - 14:15
(6)(7) конечно элегантнее, но не всегда прокатит, если доступа к нему нет например
   cw014
 
9 - 27.12.12 - 14:17
(8) Даже если файл не существует - "Ф" будет создан и обработаны имена файлов
   le_
 
10 - 27.12.12 - 14:17
(8) Файла может вообще не существовать. И Когда файл существует, но нет прав, все равно отрабатывает.
 
 Рекламное место пустует
   acsent
 
11 - 27.12.12 - 14:19
(8) объект файл никакого отношения к конкретному файлу не имеет
   acsent
 
12 - 27.12.12 - 14:19
пока не начнешь атрибуты файла запрашивать
   cw014
 
13 - 27.12.12 - 14:19
(8) Вот видишь - век живи - век учись
   Maxus43
 
14 - 27.12.12 - 14:21
заклевали то сразу) я из типовой примеры привёл :)(
   Vladal
 
15 - 27.12.12 - 14:29
C:\Documents and Settings\Рабочий стол\Нужный фрагмент.xlsx  - как получил? Диалогом открытия/сохранения файлов? Тогда этот диалог имеет метод ИмяФайла.
   IBTM
 
16 - 27.12.12 - 14:30
Спасибо, вам... как всегда уже придумали).

Про Ф = Новый Файл, видел, спс.
Я сделал вот так:
СтрЗаменить(ИмяФайла,".xlsx","") нормально?
   IBTM
 
17 - 27.12.12 - 14:30
как вариант...
   IBTM
 
18 - 27.12.12 - 14:34
(15) нет, учту. Вообще с файлами мало работал.
   kosts
 
19 - 27.12.12 - 14:41
(16) >СтрЗаменить(ИмяФайла,".xlsx","") нормально?
Не
   bezgudroman
 
20 - 27.12.12 - 14:44
вПолнИмяФайла = "C:\Documents and Settings\Рабочий стол\Нужный фрагмент.xlsx";
    вСпис = глСтрокаВСписок(вПолнИмяФайла,"\");
    вИмяФайлаСРасш = вСпис.ПолучитьЗначение(вспис.РазмерСписка());
   // есть дятлы, которые в иени файла ставят точки типа: "plugin.export.php" или "NokiaX2-02.oceanblue.jpeg"
 
   //вФайлИмя = глСлеваОт(вИмяФайлаСРасш,".");
 
   //вФайлРаш = глСправаОт(вИмяФайлаСРасш,".");
 
    вФайлИмя = "";
    вФайлРаш = "";
    вЧастиИмениФайла = глСтрокаВСписок(вИмяФайлаСРасш,".");
    СЦ = 0; вЧастей = вЧастиИмениФайла.РазмерСписка();
    Для СЦ = 1 По вЧастей Цикл
        Если СЦ <> вЧастей Тогда
            вФайлИмя = вФайлИмя + вЧастиИмениФайла.ПолучитьЗначение(СЦ);
        else
            вФайлРаш = вЧастиИмениФайла.ПолучитьЗначение(СЦ);        
        КонецЕсли; 
    КонецЦикла;
   bezgudroman
 
21 - 27.12.12 - 14:46
Если СЦ <> вЧастей Тогда
            вФайлИмя = глДобавитьКСтроке(вФайлИмя,вЧастиИмениФайла.ПолучитьЗначение(СЦ),".");
        else
            вФайлРаш = вЧастиИмениФайла.ПолучитьЗначение(СЦ);        
        КонецЕсли;
   IBTM
 
22 - 27.12.12 - 14:52
(19) можно узнать, почуму?
   kosts
 
23 - 27.12.12 - 14:55
(22) Не универсально.
У Excel еще есть тип xls.
А вдруг позже попросят обрабатывать и mxl или опен офис.
Придется больше переделывать.
   IBTM
 
24 - 27.12.12 - 15:12
(23) моё только под xlsx работает)))
   Паучог
 
25 - 27.12.12 - 15:17
(0)
МассивПодСтрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодСтрок(ПутьКФайлу,"\");
ИмяФайла = МассивПодСтрок[МассивПодСтрок.ВГраница()];
   НЕА123
 
26 - 27.12.12 - 16:16
файл = Новый Файл("ftp://10.10.168.19/Documents/АБВГД.pdf");

в отладчике 

файл    Файл    Файл
Имя                    "file"    Строка
ИмяБезРасширения    "file"    Строка
ПолноеИмя            "file://file://ftp://10.10.168.19/Documents/АБВГД.pdf"    Строка
Путь                    ""    Строка
Расширение            ""    Строка



Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует