Если данная тема уже обсуждалась на этом форуме, и у кого, в отличии от меня, получиться ее найти, сошлитесь на неё в данной теме, буду крайне признателен. Уже все сроки горят - не успеваю!!!
Избавление от спецсимволов в названии файла ОС
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
NewUser
- Старожил
- Сообщения: 238
- Зарегистрирован: 10 Ноябрь 2005, 23:07
- Откуда: Краснодар
- Благодарил (а): 6 раз
Избавление от спецсимволов в названии файла ОС
А не завалялся ли у кого код очистки строки от спецсимволов, в результате выполнения которого в строке остались бы буквы в 2х регистрах на 2х языках, цифры, и символы: точка, тире, подчеркивание, пробел.
Если данная тема уже обсуждалась на этом форуме, и у кого, в отличии от меня, получиться ее найти, сошлитесь на неё в данной теме, буду крайне признателен. Уже все сроки горят - не успеваю!!!
Если данная тема уже обсуждалась на этом форуме, и у кого, в отличии от меня, получиться ее найти, сошлитесь на неё в данной теме, буду крайне признателен. Уже все сроки горят - не успеваю!!!
-
kreator
- ✯ Ветеран ✯
- Сообщения: 5233
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Избавление от спецсимволов в названии файла ОС
Никогда не делал, сразу скажу. Попробуй пустить цикл по строке и проверяй каждый символ функциями ISALPHA и NUMERIC.
We are hard at work… for you. 
Избавление от спецсимволов в названии файла ОС
А в чём проблема?
Код: Выделить всё
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)
Избавление от спецсимволов в названии файла ОС
А не проще вместо INSTRING использовать MATCH
IF MATCH(Upper(OldName[I#]),'[ \.-_A-ZА-Я0-9]',Match:Regular)
IF MATCH(Upper(OldName[I#]),'[ \.-_A-ZА-Я0-9]',Match:Regular)
-
NewUser
- Старожил
- Сообщения: 238
- Зарегистрирован: 10 Ноябрь 2005, 23:07
- Откуда: Краснодар
- Благодарил (а): 6 раз
Избавление от спецсимволов в названии файла ОС
Конечно, проще! Никогда не сталкивался с данной функцией. Кстати, как добавить в список пробел? Пока вышел из положения, приписав ... or Val(OldName[I#]) = 32, но хотелось бы отслеживать его с помощью самой функции.
-
NewUser
- Старожил
- Сообщения: 238
- Зарегистрирован: 10 Ноябрь 2005, 23:07
- Откуда: Краснодар
- Благодарил (а): 6 раз
Избавление от спецсимволов в названии файла ОС
Я его даже во внутрь конструкции переставлял - не работает (С63, АВС).
