Как заменить имя файла с помощью RegExp

Программирование на Visual Basic for Applications
Cyberax
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 12
Зарегистрирован: 13.09.2006 (Ср) 8:31
Откуда: Тюмень, Россия

Как заменить имя файла с помощью RegExp

Сообщение Cyberax » 13.09.2006 (Ср) 8:41

Есть файлы с именем типа [20524.00-0-КСУ(Ц)-0-ГП л. 002 Ред. B1][146Y.pdf] #00 надо чтобы осталось только 20524.00-0-КСУ(Ц)-0-ГП л. 002 Ред. B1 Подскажите кто-нибудь пожалуста.

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 13.09.2006 (Ср) 9:44

Если я правильно понял, что нужно получить содержимое первых квадратных скобок, то можно так:
Код: Выделить всё
With New RegExp
       .Pattern = "\[(.+?)\].*"
       Debug.Print .Replace("[20524.00-0-КСУ(Ц)-0-ГП л. 002 Ред. B1][146Y.pdf] #00 ", "$1")
End With

Cyberax
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 12
Зарегистрирован: 13.09.2006 (Ср) 8:31
Откуда: Тюмень, Россия

Сообщение Cyberax » 13.09.2006 (Ср) 12:06

Вообще фаил называется [20524.00-0-КСУ(Ц)-0-ГП л. 002 Ред. B1][146Y.pdf] #00.pdf а надо чтобы получилось 20524.00-0-КСУ(Ц)-0-ГП л. 002 Ред. B1.pdf. И вообще надо чтобы после замены изменения сохранялись.

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 13.09.2006 (Ср) 21:12

Из-под Excel я бы сделал так:

Код: Выделить всё
Function ClearName(ByVal strText As String, ByVal strPattern As String) As String
    Dim RegExp As Object
    Set RegExp = CreateObject("vbscript.regexp")
    With RegExp
        .Pattern = strPattern
        .Global = True
        ClearName = .Replace(Trim(strText), "")
    End With
End Function

Sub Test()
    strText = "[20524.00-0-КСУ(Ц)-0-ГП л. 002 Ред. B1][146Y.pdf] #00.pdf "
    strPattern = "(\[\S{4})\.(\S{3}\])|(\s#\d{2})|[\[\]]"
    MsgBox ClearName(strText, strPattern)
End Sub
Привет,
KL

Cyberax
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 12
Зарегистрирован: 13.09.2006 (Ср) 8:31
Откуда: Тюмень, Россия

Сообщение Cyberax » 14.09.2006 (Чт) 6:21

Имя фаила меняется только в программе мне надо чтобы оно реально поменялось

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 14.09.2006 (Чт) 7:00

читай справку по name

Cyberax
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 12
Зарегистрирован: 13.09.2006 (Ср) 8:31
Откуда: Тюмень, Россия

Сообщение Cyberax » 14.09.2006 (Чт) 7:25

Всем большое спасибо. Вы мне очень помогли


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 49

    TopList  
cron