Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> взять имя из строки 
V
    Опции темы
max85
Дата 19.9.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 29.6.2007

Репутация: нет
Всего: нет



Добрый день!
Кто может подскажет как вытащить имя файла из строки, например есть строка
D:\Files\file1.cab
надо при нажатии на кнопку в текстовом поле появилось только имя файла с расширением file1.cab

подскажите как можно это сделать...
спасибо!
PM MAIL   Вверх
Akina
Дата 19.9.2007, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Код

do while AllowedInFileName(Right(str1,1))
 str2=Right(str1,1) & str2
 if len(str1)=1 then exit do
 str1=Left(str1, Len(str1)-1)
loop

Function AllowedInFileName(Symbol As String) As Boolean
 If Symbol = ":"  Or Symbol = "\" Then
  AllowedInFileName=False
 Else
  AllowedInFileName=True
 EndIf
End Function 

Это при условии, что str1 - действительно корректное имя файла


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
max85
Дата 19.9.2007, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 29.6.2007

Репутация: нет
Всего: нет



Спасибоза отзыв!
а если путь будет примерно такой 
D:\path\папка\ghbvth\file.txt
сработает?

Добавлено через 8 минут и 14 секунд
вопрос снимается. глупый вопрос!
СПАСИБО!
работает
PM MAIL   Вверх
JusTalionis
Дата 20.9.2007, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 6
Всего: 17



Akina, объясни мне, плиз, зачем такие сложности, если искомый результат достигается одной строчкой: 
Код
 Right$(pathN$,Len(pathN$)-(InStrRev(pathN$,"\"))) 
 (где pathN$ - содержит исходные путь\имя).

?

PM MAIL   Вверх
W4FhLF
Дата 20.9.2007, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 3
Всего: 121



Код

Arr = Split(Path, "\"): FileName = Arr(UBound(Arr))





--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Akina
Дата 20.9.2007, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(JusTalionis @  20.9.2007,  10:19 Найти цитируемый пост)
зачем такие сложности

Код

filename$ = "x:filename.ext"


Если же входной параметр - гарантированно полное имя, то

Код

filename = mid(fullname, instr(fullname, "\") + 1)



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
JusTalionis
Дата 20.9.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 6
Всего: 17



Вообще-то я исходил из авторского условия:
D:\path\папка\ghbvth\file.txt

Если же хотим обработать краевые эффекты, все равно легче просто повторить функцию, с другим разделителем:
Код
FileName = Right$(Path, Len(Path) - (InStrRev(Path, "\")))
FileName = Right$(FileName, Len(FileName) - (InStrRev(FileName, ":")))

Ваш второй вариант - не работает, потому что строка делится по первому слэшу, а не последнему.


W4FhLF:
Хотя это и не совсем в бейсиковском духе, но изящный и очень эффективный способ, потому что позволяет выделить любой параметр, а не только последниий. IMHO, это лучшее решение из представленныз здесь.

PM MAIL   Вверх
Akina
Дата 20.9.2007, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(JusTalionis @  20.9.2007,  18:26 Найти цитируемый пост)
Ваш второй вариант - не работает, потому что строка делится по первому слэшу, а не последнему.

угу, погорячился...
Кстати, в случае, если возможен ввод URI, придется добавить к проверяемым и прямые слеши...




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.