Избавление от спецсимволов в названии файла ОС

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
NewUser
Старожил
Сообщения: 238
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 6 раз

Избавление от спецсимволов в названии файла ОС

Сообщение NewUser »

А не завалялся ли у кого код очистки строки от спецсимволов, в результате выполнения которого в строке остались бы буквы в 2х регистрах на 2х языках, цифры, и символы: точка, тире, подчеркивание, пробел.
Если данная тема уже обсуждалась на этом форуме, и у кого, в отличии от меня, получиться ее найти, сошлитесь на неё в данной теме, буду крайне признателен. Уже все сроки горят - не успеваю!!! :shock:
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Избавление от спецсимволов в названии файла ОС

Сообщение kreator »

Никогда не делал, сразу скажу. Попробуй пустить цикл по строке и проверяй каждый символ функциями ISALPHA и NUMERIC.
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Избавление от спецсимволов в названии файла ОС

Сообщение Yufil »

А в чём проблема?

Код: Выделить всё

ConvertFileName  Procedure(OldName),String 
! Правильные буквы 
AllowSymbols  String(' .-_ABCD..ZАБВ...я0123456789')
Ret    Cstring(260) 
                           Code
              Loop I#=1 to Len(OldName) 
                  IF Instring(Upper(OldName[I#]), AllowSymbols, 1,1) 
                       Ret = Ret & OldName[i#]
                  Else
                      ! Неправильный символ, что делать? 
                       Ret = Ret & '?' 
                  End 
              End
              Return(Ret) 
NewUser
Старожил
Сообщения: 238
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 6 раз

Избавление от спецсимволов в названии файла ОС

Сообщение NewUser »

Yufil писал(а): А в чём проблема?
Уже её нет и в помине. :D
Спасибо!
PavelNK
Старожил
Сообщения: 279
Зарегистрирован: 15 Март 2011, 8:02

Избавление от спецсимволов в названии файла ОС

Сообщение PavelNK »

А не проще вместо INSTRING использовать MATCH

IF MATCH(Upper(OldName[I#]),'[ \.-_A-ZА-Я0-9]',Match:Regular)
NewUser
Старожил
Сообщения: 238
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 6 раз

Избавление от спецсимволов в названии файла ОС

Сообщение NewUser »

PavelNK писал(а): не проще вместо INSTRING использовать MATCH
IF MATCH(Upper(OldName[I#]),'[ \.-_A-ZА-Я0-9]',Match:Regular)
Конечно, проще! Никогда не сталкивался с данной функцией. Кстати, как добавить в список пробел? Пока вышел из положения, приписав ... or Val(OldName[I#]) = 32, но хотелось бы отслеживать его с помощью самой функции.
PavelNK
Старожил
Сообщения: 279
Зарегистрирован: 15 Март 2011, 8:02

Избавление от спецсимволов в названии файла ОС

Сообщение PavelNK »

А он добавлен, самый первый
NewUser
Старожил
Сообщения: 238
Зарегистрирован: 10 Ноябрь 2005, 23:07
Откуда: Краснодар
Благодарил (а): 6 раз

Избавление от спецсимволов в названии файла ОС

Сообщение NewUser »

PavelNK писал(а): А он добавлен, самый первый
Я его даже во внутрь конструкции переставлял - не работает (С63, АВС).
Ответить