Описание функции


ValidChar

Проверяет, соответствует ли строка указанному набору символов.

ValidChar(*c.Character, Char$, Allow)

Параметры

*c.Character Строка для обработки
Char$ Строка содержащая символы для проверки
Allow Флаг разрешения символов указанных в Char$
    0 - не разрешать
    1 - разрешать только символы указанные в Char$

Возвращаемое значение

Возвращает флаг соответствия 0 или 1

Примечания

В отличии от диапазонов, в этой функции указываются явные символы.

См. также

IsDigital, IsLatin, IsHex, IsFloat

Пример

; AZJIO
; https://www.purebasic.fr/english/viewtopic.php?p=597022#p597022

Procedure ValidChar(*c.Character, Char$, Allow)
    If Not Asc(Char$)
        ProcedureReturn Allow
    EndIf

    While *c\c
        If Bool(FindString(Char$, Chr(*c\c))) <> Allow
            ProcedureReturn Bool(Not Allow)
        EndIf
        *c + SizeOf(Character)
    Wend

    ProcedureReturn Allow
EndProcedure


Define ValidChars$ = "0123456789ABCDEF"
Define InValidChars$ = ~"^\\/:*?\"<>|"

Debug ValidChar(@"FF8080", ValidChars$, 1) ; 1
Debug ValidChar(@"0x15", ValidChars$, 1) ; 0

Debug ValidChar(@"filename", InValidChars$, 0) ; 0
Debug ValidChar(@"file:", InValidChars$, 0) ; 1