![]() |
![]() |
![]() |
|
Как выделить из <путь\ИмяФайла> Имя файла | ☑ | ||
---|---|---|---|---|
0
Jeronimo
18.08.05
✎
16:16
|
Как выделить из <Путь\ИмяФайла> Путь
|
|||
1
SNT
18.08.05
✎
16:19
|
У файлов как правило есть расширение, то бишь есть "точка", попробуй от нее плясать...<Путь\ИмяФайла> - строка?
|
|||
2
Jeronimo
18.08.05
✎
16:20
|
<Путь\ИмяФайла> - строка
не факт что будет точка |
|||
3
Wasya
18.08.05
✎
16:20
|
Подробнее опиши задачу. Может там где ты брал <Путь\ИмяФайла>, можно взять просто ИмяФайла.
|
|||
4
OFF
18.08.05
✎
16:24
|
Найти позиции последнего слэша
кусок строки от первого символа до позиции последнего слэша = сабж наверно |
|||
5
Rovan
гуру
18.08.05
✎
16:24
|
(0) В кр. случае циклом бежим побуквенно с конца строки до первого "\"
|
|||
6
OFF
18.08.05
✎
16:25
|
Соврал :(
От последнего слеша + 1 и до конца |
|||
7
Jeronimo
18.08.05
✎
16:25
|
в данном случае есть просто строка
неужели в 1С нет встроенной функции для решения такой задачи?? |
|||
8
NS
18.08.05
✎
16:29
|
(7) Назови язык, в котором есть....
|
|||
9
ИвановИван
18.08.05
✎
16:29
|
(7) лол, даже не лол а синдрома даунито храмосом
|
|||
10
Jeronimo
18.08.05
✎
16:31
|
(8,9) в ПХП такое есть
|
|||
11
SNT
18.08.05
✎
16:32
|
(4)... дык в этом задача и состоит- найти последний слэш!...все остальной ерунда- дело техники.
|
|||
12
OFF
18.08.05
✎
16:33
|
упссссс, а че надоть то?
В заголовке - "Имя", в "0" посте - "путь" |
|||
13
smaharbA
18.08.05
✎
16:34
|
(8) Split(FileName,"\")
|
|||
14
Jeronimo
18.08.05
✎
16:34
|
(12) нужно выделить из строки имя и путь
|
|||
15
OFF
18.08.05
✎
16:35
|
(11) Проблема найти?
Смотри типовые, как ФИО работает |
|||
16
smaharbA
18.08.05
✎
16:35
|
+(13) и для (9)
|
|||
17
skunk
18.08.05
✎
16:38
|
Как из длинного имени файла получить короткое?
Описание: Нужно из диного имени файла получить короткое. То есть преобразовать строку ввида: "d:\developer\kill.ert", в строку "kill.ert" Решение: //******************************************* // GetShortName(Name) // // Параметры: // Name - Строка. Полное имя файла. // // Возвращаемое значение: // Строка. Короткое имя файла. // // Описание: // Функция извлекает из длинного имени файла // его короткое. // function GetShortName(Name) Answer = Name; // Получим длину переданной нам строки. LenName = strlen(Answer); // Установим указатель на последний символ. Pos = LenName; // Начнем искать самый последний слэш. // Если таковой имеется. Make = "yes"; while Make = "yes" do // Посмотрим текущий символ. // Не слэш ли он. if mid(Answer, Pos, 1) = "\" then // Получим строку от слэша и до конца. // Это и есть короткое имя файла. Answer = right(Answer, LenName - Pos); // Выходим из цикла Make = "no"; endif; // Уменьшим указатель на текущий символ. Pos = Pos - 1; // Если он равен нулю, то просмотрели все. // Слэша нет. Значит нам передали короткое имя. if Pos = 0 then // Выходим из цикла Make = "no"; endif; enddo; return Answer; endfunction |
|||
18
Jeronimo
18.08.05
✎
16:40
|
skunk, спасибо
|
|||
19
smaharbA
18.08.05
✎
16:46
|
Функция ИмяФайлаИз(Файл)
Если ПустоеЗначение(ФС.НайтиПервыйФайл(Файл))=1 Тогда Предупреждение("Неверно выбран файл!!!",10); СтатусВозврата(0); Возврат "Неверно выбран файл!!!"; КонецЕсли; Попытка WshShell = CreateObject("WScript.Shell"); scrptCtrl=createobject("MSScriptControl.ScriptControl"); scrptCtrl.language="vbscript"; СтрокаДействия="Function SplitVBS() |F=Split("""+Файл+""",""\"") |SplitVBS=F(Ubound(F)) |End Function"; scrptCtrl.addcode(СтрокаДействия); а=scrptCtrl.run("SplitVBS"); Сообщить(а); Возврат а; Исключение Сообщить("Непонятки "+ОписаниеОшибки()); КонецПопытки; КонецФункции // ИмяФайлаИз |
|||
20
smaharbA
18.08.05
✎
16:52
|
(17)(18) можно еще проще
fso = CreateObject("Scripting.FileSystemObject"); GetAName = fso.GetFileName(ДлинноеИмяФайла); Сообщить(GetAName); |
|||
21
SNT
18.08.05
✎
16:52
|
(15) так почти на любой вопрос можно ответить по программированию в 1С:)
|
|||
22
Jeronimo
18.08.05
✎
16:52
|
(19) тоже вариант.
но вариант только на 1С кажется симпатичнее |
|||
23
Jeronimo
18.08.05
✎
16:57
|
(20) smaharbA, опишите пожалуйста подробнее этот механизм. и как можно получить таким образом путь без имени файла
|
|||
24
skunk
18.08.05
✎
16:58
|
(20)если можно решить проблему на родном языке одинСи... зачем лезть в дебри...
а вдруг завтра MS из винды выкенет и fso... как выкидывает whs... что делать? |
|||
25
smaharbA
18.08.05
✎
17:04
|
(24) а вба не выкинет, (23) можно это и в коммандной строке проделать, обычными коммандами системы... например dir /b ДлинноеИмяФайла (конечно если файл существует), можно и не для существующего файла сделать и в 1Сэ передать...
(24) согласен, что решать лучче средствами 1Сэ, но так бывает гибче, можно механизм отработать и так и так, при разных условиях... А если завтра война? (с) |
|||
26
smaharbA
18.08.05
✎
17:04
|
(23) а ты запиши это в 1Сэ и позырь...
|
|||
27
Jeronimo
18.08.05
✎
17:08
|
(26) я позырил. работает, спасибо. но здесь находится ИмяФайла, а если нужен Путь без имени?
|
|||
28
Старый
18.08.05
✎
17:12
|
(8,9) fnsplit, fnmerge в C++
|
|||
29
Старый
18.08.05
✎
17:16
|
//____________________________________________
Функция ВыделитьИмяФайла(Пимя) Рез = СтрЗаменить(Пимя,"\",РазделительСтрок); Возврат СтрПолучитьСтроку(Рез, СтрКоличествоСтрок(Рез)); КонецФункции |
|||
30
smaharbA
18.08.05
✎
17:20
|
(27) блин да ты чего Путь=Средн(ПолноеИмяФайла,1,СтрДлина(ПолноеИмяФайла)-СтрДлина(ИмяФайла)-1)
|
|||
31
smaharbA
18.08.05
✎
17:21
|
(29) хороший сплит... ;)
|
|||
32
Старый
18.08.05
✎
17:21
|
(29) ... Эх, кхе... кхе... Совсем старый стал...
в (0) невнимательно прочитал, нужен путь оказывается. |
|||
33
smaharbA
18.08.05
✎
17:23
|
(32) дак там в (29) ему и путь и имя и фамилия ;)
|
|||
34
Старый
18.08.05
✎
17:23
|
(32) А в теме то имя файла!
|
|||
35
Jeronimo
18.08.05
✎
17:24
|
(30, 32) интересовало нахождение и пути и имени
(29, 30) спасибо, это то что нужно |
|||
36
raykom
18.08.05
✎
17:33
|
ФС.АтрибутыФайла(<ИмяФайла>, <РазмерФайла> , <АтрибутыФайла>, <ВремяСоздания>,
<ВремяПоследнДоступа>, <ВремяПоследнЗаписи>, <РасширенноеИмяФайла>) |
|||
37
smaharbA
18.08.05
✎
17:34
|
(36) когда файл существует...
|
|||
38
raykom
18.08.05
✎
17:35
|
Так назначить или определить?
|
|||
39
raykom
18.08.05
✎
17:37
|
А путь = строка путиФайла - АтрибутыФайла>ИмяФайла
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |