Я бы хотел проверить, правильно ли отформатированы имена файлов в моем каталоге. Сначала я создаю переменную dir
, а затем использую ключевое слово key
, чтобы увидеть, какие файлы перечислены ...
q)dir:`:/myDirectory/data/files
q)dirkey:key dir
q)dirkey
`FILEA_XYZ_20190501_b233nyc9_OrderPurchase_000123.json
`FILEB_ABC_20190430_b556nyc1_OrderSale_000456.meta
Я выбираю и анализирую .json
имя файла ...
q)dirjsn:dirkey where dirkey like "*.json"
q)sepname:raze{"_" vs string x}'[dirjsn]
"FILEA"
"XYZ"
"20190501"
"b233nyc9"
"OrderPurchase"
"000123.json"
Далее я хотел бы подтвердить, что каждый символ в sepname[0]
и sepname[1]
является буквами, что символы в sepname[2]
являются числовыми / временными и что sepname[3]
содержит буквенно-цифровые значения.
Каков наилучший способ оптимизации следующих последовательных if statements
для производительности и как я могу проверить буквенно-цифровые значения, как в случае sepname[3]
, а не только одно или другое?
q)if[not sepname[0] like "*[A-Z]";:show "Incorrect Submitter"];
if[not sepname[1] like "*[A-Z]";:show "Incorrect Reporter"];
if[not sepname[2] like "*[0-9]";:show "Incorrect Date"];
if[not sepname[3] like " ??? ";:show "Incorrect Kind"];
show "Correct File Format"