|
Копирование полей в 2.5
|
|||
---|---|---|---|
#18+
Здравствуйте, поправте начинающего, пожалуйста. Есть база 1 - образец, с которой мы сверяем базу 2. По коду и результату, думаю, все понятно, как оно работает. Теперь надо при несовпадении автоматически исправлять поля в базе 2, как они есть в базе 1. Пробовал команду replace, но так и не получилось :-0 База 1: Record# POLE1 POLE2 POLE3 POLE4 1 10000 20000 30000 40000 2 11000 22000 23000 24000 3 11100 22200 33300 44400 База 2: Record# POLE5 POLE6 POLE7 POLE8 1 10000 20000 30000 40000 2 10000 20000 30000 40000 3 11000 22000 23003 24000 4 10000 20002 30000 40000 5 11100 22200 33300 44400 авторКод: close databases set century on set talk off set safety off select 1 use 2 go top do while !EOF() perpole5=pole5 perpole6=pole6 perpole7=pole7 select 2 use 1 locate for perpole5=pole1 f=found() if f==.F. ?'wrong' else ?'ok' endif perpole1=pole1 perpole2=pole2 perpole3=pole3 if perpole2==perpole6 ?'ok' else ?'pole2!=pole6' endif if perpole3==perpole7 ?'ok' ?'' else ?'pole3!=pole7' ?'' endif endif select 1 skip enddo Результат: http://savepic.ru/2898450.jpg ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2011, 17:19 |
|
Копирование полей в 2.5
|
|||
---|---|---|---|
#18+
laraisonТеперь надо при несовпадении автоматически исправлять поля в базе 2, как они есть в базе 1. Пробовал команду replace, но так и не получилось Плохо пробовал. Как-то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2011, 17:42 |
|
Копирование полей в 2.5
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Поскольку речь идет о FP2.5, то в цикле SCAN..ENDSCAN необходимо подстраховываться через принудительный возврат в сканируемую рабочую область непосредственно перед командой ENDSCAN. Ну, и GO TOP тоже для страховки ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2011, 17:55 |
|
Копирование полей в 2.5
|
|||
---|---|---|---|
#18+
Спасибо большое! И еще можно один момент узнать. Как правильно сравнивать два символьных поля (или переменных) на предмет из различия, например, при сравнении "Петров Иван Иванович" и "Петров Иван И ы анович" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2011, 17:51 |
|
Копирование полей в 2.5
|
|||
---|---|---|---|
#18+
laraisonИ еще можно один момент узнать. Как правильно сравнивать два символьных поля (или переменных) на предмет из различия, например, при сравнении "Петров Иван Иванович" и "Петров Иван И ы анович" Это называется "Алгоритм Левенштейна". В общем случае, довольно не тривиальная вещь. Если действительно интересно, поищите в интернете. Есть много ссылок, в том числе и на реализацию в FoxPro Владимир Иосифович Левенштейн (родился в 1935 году) - российский ученый, доктор физико-математических наук. Окончил Московский Государственный Университет им. М.В. Ломоносова, Механико-математический факультет МГУ, в 1958 г. После окончания Университета работает ведущим научным сотрудником в 10 отделе Института Прикладной Математики имени Мстислава Всеволодовича Келдыша РАН, Российская Федерация. Благодаря введенному им в 1965 году понятию дистанции редактирования, названной его именем, доктор Левенштейн стал известен всему миру. Дистанция Левенштейна (также функция Левенштейна или алгоритм Левенштейна) в теории информатики и компьютерной лингвистики является мерой разницы двух последовательностей символов (строк) относительно минимального количества операций Вставки, Удаления и Замены, необходимых для перевода одной строки в другую. Пример: Чтоб перевести слово Конь в слово Кот необходимо совершить одно удаление и одну замену, соответственно дистанция Левенштейна составляет 2: 1. Конь 2. Коть (Заменяем н на т) 3. Кот (Удаляем ь) Практическим применением дистанции Левенштейна является определение похожести последовательностей символов, к примеру в коррекции орфографии или при поиске дубликатов. В 2006 году VLADIMIR I. LEVENSHTEIN, Leading Scientific Researcher, Keldysh Institute for Applied Mathematics, Moscow, Russia получил медаль Хэмминга (IEEE Richard W. Hamming Medal) за вклад в теорию кодов с исправлением ошибок и теорию информации (For contributions to the theory of error-correcting codes and information theory, including the Levenshtein distance). Подробнее на сайте www.ieee.org Домашняя страница: www.keldysh.ru Адрес E-mail: leven@keldysh.ru Рабочий телефон: +7 (495) 250-78-34 Научные интересы: комбинаторная оптимизация ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2011, 19:42 |
|
|
start [/forum/topic.php?fid=41&msg=37381141&tid=1584221]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 293ms |
total: | 432ms |
0 / 0 |