Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Поиск записей в базе по шаблону
|
|||
|---|---|---|---|
|
#18+
Имеется DBF база с полем символьного типа A1 Необходимо отобрать из нее все записи соответствующие шаблону А9999АА, где А-буквы,9-цифры Подскажите пожалуйста как это сделать Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2005, 20:16 |
|
||
|
Поиск записей в базе по шаблону
|
|||
|---|---|---|---|
|
#18+
1. HELP IsAlpha(), IsDigit() 2. HELP CHRTRAN() Например: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2005, 23:39 |
|
||
|
Поиск записей в базе по шаблону
|
|||
|---|---|---|---|
|
#18+
Вы наверное меня не поняли. Вопрос такой. Необходимо просмотреть всю базу по полю А1 и выбрать все записи по шаблону. Не лучще ли написать процедуру, поскольку шаблонов у меня будет несколько. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 08:26 |
|
||
|
Поиск записей в базе по шаблону
|
|||
|---|---|---|---|
|
#18+
Процедуру написать лучше ;-) Я Вас понял ;-))) Просто я предполагаю, что полезнее предложить идею, а не готовое решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 09:24 |
|
||
|
Поиск записей в базе по шаблону
|
|||
|---|---|---|---|
|
#18+
Urri видимо недостаточно внятно изложил идею. Той функции, которая Вам нужна в FoxPro нет. Однако ее достаточно просто реализовать самому через функцию ChrTran(). Идея заключается в следующем: Все буквы и пробел заменяются на букву "A", а все цифры заменяются на символ "9". Далее полученный результат сравнивается с нужным шаблоном. Если подробно, то это выглядит примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Какой именно будет шаблон роли не играет. Вы получили универсальную функцию приведения к шаблону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 09:42 |
|
||
|
Поиск записей в базе по шаблону
|
|||
|---|---|---|---|
|
#18+
FUNCTION shablon PARAMETER ast DIMENSION st(10) PRIVATE i,st FOR i=1 TO LEN(ALLTRIM(ast)) st(i)=SUBSTR(ast,i,1) ENDFOR DO CASE CASE LEN(ast)=8 IF IsAlpha(st(1)) AND ISDIGIT(st(2)) AND ISDIGIT(st(3)) AND ISDIGIT(st(4)); AND IsAlpha(st(5)) AND IsAlpha(st(6))AND ISDIGIT(st(7))AND ISDIGIT(st(8))then RETURN '01' ENDIF IF IsAlpha(st(1)) AND IsAlpha(st(2)) and ISDIGIT(st(3)) AND ISDIGIT(st(4)) AND ISDIGIT(st(5)); AND ISDIGIT(st(6)) AND ISDIGIT(st(7)) AND ISDIGIT(st(8)) then RETURN '02' ENDIF IF ISDIGIT(st(1)) AND ISDIGIT(st(2)) AND ISDIGIT(st(3)); AND ISDIGIT(st(4)) AND IsAlpha(st(5)) AND IsAlpha(st(6)) AND iSDIGIT(st(7)) AND ISDIGIT(st(8))then RETURN '002' ENDIF CASE LEN(ast)=6 IF IsAlpha(st(1)) AND ISDIGIT(st(2)) AND ISDIGIT(st(3)) AND ISDIGIT(st(4)); AND IsAlpha(st(5)) AND IsAlpha(st(6))then RETURN '001' ENDIF IF IsAlpha(st(1)) AND IsAlpha(st(2)) and ISDIGIT(st(3)) AND ISDIGIT(st(4)) AND ISDIGIT(st(5)); AND ISDIGIT(st(6)) then RETURN '020' ENDIF IF ISDIGIT(st(1)) AND ISDIGIT(st(2)) AND ISDIGIT(st(3)); AND ISDIGIT(st(4)) AND IsAlpha(st(5)) AND IsAlpha(st(6)) then RETURN '24' ENDIF CASE LEN(ast)=7 IF IsAlpha(st(1)) AND IsAlpha(st(2)) AND ISDIGIT(st(3)) AND ISDIGIT(st(4)); AND ISDIGIT(st(5)) AND iSDIGIT(st(6)) AND ISDIGIT(st(7))then RETURN '91' ENDIF IF ISDIGIT(st(1)) AND ISDIGIT(st(2)); AND ISDIGIT(st(3)) AND IsAlpha(st(4)) AND IsAlpha(st(5)) AND iSDIGIT(st(6)) AND ISDIGIT(st(7))then RETURN '910' ENDIF IF IsAlpha(st(1)) AND ISDIGIT(st(2)) AND ISDIGIT(st(3)) AND ISDIGIT(st(4)); AND IsAlpha(st(5)) AND IsAlpha(st(6)) AND IsAlpha(st(6)) then RETURN '22' ENDIF IF IsAlpha(st(1)) AND ISDIGIT(st(2)) AND ISDIGIT(st(3)); AND ISDIGIT(st(4)) AND ISDIGIT(st(5)) AND iSDIGIT(st(6)) AND ISDIGIT(st(7))then RETURN '92' ENDIF IF ISDIGIT(st(1)) AND ISDIGIT(st(2)); AND ISDIGIT(st(3)) AND ISDIGIT(st(4)) AND IsAlpha(st(5)) AND iSDIGIT(st(6)) AND ISDIGIT(st(7))then RETURN '92' ENDIF IF ISDIGIT(st(1)) AND ISDIGIT(st(2)); AND ISDIGIT(st(3)) AND ISDIGIT(st(4)) AND IsAlpha(st(5)) AND IsAlpha(st(6))AND IsAlpha(st(7))then RETURN '21' ENDIF CASE LEN(ast)=5 IF ISDIGIT(st(1)) AND ISDIGIT(st(2)); AND ISDIGIT(st(3)) AND ISDIGIT(st(4)) AND IsAlpha(st(5)) then RETURN '920' ENDIF IF ISDIGIT(st(1)) AND ISDIGIT(st(2)); AND ISDIGIT(st(3)) AND IsAlpha(st(4)) AND IsAlpha(st(5)) then RETURN '911' ENDIF CASE LEN(ast)=9 IF IsAlpha(st(1)) AND ISDIGIT(st(2)) AND ISDIGIT(st(3)); AND ISDIGIT(st(4)) AND ISDIGIT(st(5)) AND IsAlpha(st(6)) AND IsAlpha(st(7))AND ISDIGIT(st(8)) AND ISDIGIT(st(9))then RETURN '220' ENDIF OTHERWISE RETURN '' ENDCASE Здесь указаны несколько шаблонов. Когда в записях попадается строки неописанного в данной процедуре шаблона функция возвращает .Т., почему это происходит. Вызов осуществляю так SET PROCEDURE TO SHABLON USE avto.dbf IN 0 GO TOP DO WHILE .NOT. EOF() IF shablon(st_num)='01' THEN replace typ_num WITH '01' ENDIF IF shablon(st_num)='02' THEN replace typ_num WITH '02' ENDIF IF shablon(st_num)='22' THEN replace typ_num WITH '22' ENDIF IF shablon(st_num)='91' THEN replace typ_num WITH '91' ENDIF IF shablon(st_num)='92' THEN replace typ_num WITH '92' ENDIF ENDDO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2005, 17:19 |
|
||
|
|

start [/forum/topic.php?fid=41&tid=1594353]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 381ms |

| 0 / 0 |
