Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сравнение двух одномерных массивов / 18 сообщений из 18, страница 1 из 1
10.02.2005, 13:48
    #32910132
Диченка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
Если способ сравнить два одномерных массива на одинаковость элементов (количество и значения) без перебора этих элементов внутри массивов ?
...
Рейтинг: 0 / 0
10.02.2005, 14:34
    #32910197
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
Ну, количество элементов, это ALEN(), а вот содержание...

Как вариант, если все элементы массива одного типа, возможно пройдет закачка во временную таблицу (APPEND FROM) и последующие Select-SQL.
...
Рейтинг: 0 / 0
10.02.2005, 14:41
    #32910214
Дмитрий Петров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
добавлю к словам Владимира.
можно и просто в переменные символьные втолкнуть
а потом их сравнить
а вобще , что мудрить- пробежаться по массиву да и делов то :))
A и B- массивы

IF ALEN(a) = ALEN(b) && длина равна
FOR i=1 TO ALEN(a)
IF TYPE('a ')=TYPE('b') AND a=b
? 'элементы совпали'
else
?' а тут не совпали'
Endif
Endfor
Endif
...
Рейтинг: 0 / 0
10.02.2005, 14:43
    #32910219
Дмитрий Петров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
за теги видать приняло...
IF .... AND a(i)=b(i)
...
Рейтинг: 0 / 0
10.02.2005, 14:57
    #32910259
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
И, вместо "=", лучше в таких случаях пользоваться "==".
...
Рейтинг: 0 / 0
10.02.2005, 16:21
    #32910504
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
Конечно, приведенное решение можно принять за шаблон, НО вопрос значительно сложнее, как сравнивать NULL и Type() = "O", те значения самого массива.
...
Рейтинг: 0 / 0
10.02.2005, 16:42
    #32910577
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
сам же себе отвечаю, в общем случае наверное нельзя до тех пор пока не определены правила сравнения, что хочу сказать, например для эл-тов Object, можно сравнить по наличию св-в и их значений, и методов, но реакция методов м.б. разной (название одно, а при выполнении в первом Hello Word, а во втором Hello Excel - спрашивается методы одинаковые или нет), ну и тд.
...
Рейтинг: 0 / 0
10.02.2005, 17:09
    #32910661
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
if alen('m1')=alen('m2')
acopy('m1','q1')
acopy('m2','q2')
asort('q1')
asort('q2')
i=0
log=.t.
do while log and i<len('m1')
i=i+1
log=iif(q1(i)=q2(i),.t.,.f.)
enddo
if log and i=len('m1')
messagebox('ok')
else
messagebox('ox')
endif
else
messagebox('число элементов разное')
endif
??????
...
Рейтинг: 0 / 0
10.02.2005, 17:19
    #32910695
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
LOCAL m1( 1 ) as Object, m2( 1 ) as Object, q1( 1 ) , q2( 1 )

m1( 1 ) = CREATEOBJECT('form')
m2( 1 ) = CREATEOBJECT('form')
 
if alen('m1')=alen('m2')
acopy('m1','q1')
acopy('m2','q2')
asort('q1')
asort('q2')
i= 0 
log=.t.
do while log and i<len('m1')
i=i+ 1 
log=iif(q1(i)=q2(i),.t.,.f.)
enddo
if log and i=len('m1')
messagebox('ok')
else
messagebox('ox')
endif
else
messagebox('÷èñëî ýëåìåíòîâ ðàçíîå')
endif

Каков результат? правильно "ox"
...
Рейтинг: 0 / 0
10.02.2005, 17:22
    #32910703
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
телеграмма 1
-изя уже
ответ
-ох

на мой взгля правильно ок
если в коде не напутал
...
Рейтинг: 0 / 0
10.02.2005, 17:24
    #32910710
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
Да не напутал, просто выведи
?q1(i)=q2(i)
...
Рейтинг: 0 / 0
10.02.2005, 17:30
    #32910719
leaf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
угу в мессажебоксе ?
в номальном екзешнике ваше ?.t. рискует попасть на форму
да надпись ваша во первых длиннее
во вторых убивает всю идею
...
Рейтинг: 0 / 0
10.02.2005, 17:43
    #32910743
Cyv
Cyv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
PaulWistкак сравнивать NULL и Type() = "O", те значения самого массива.
ISNULL() и COMPOBJ( ) рулят без проблем...

PaulWistно реакция методов м.б. разной
Ну это ты глубоковато копнул, т.с. по-философски...:)
...
Рейтинг: 0 / 0
10.02.2005, 17:47
    #32910754
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
авторугу в мессажебоксе ?
в номальном екзешнике ваше ?.t. рискует попасть на форму
да надпись ваша во первых длиннее
во вторых убивает всю идею

Извините меня, конечно, но ничего не понял из сказанных слов, если не трудно переведите последнее сообщение.
Если идет речь о готовом приложении, то первая строка понятна, вторая строка зависит от того куда идет вывод, третья строка неясна, четвертая строка - согласен.
...
Рейтинг: 0 / 0
10.02.2005, 17:54
    #32910775
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
авторISNULL() и COMPOBJ( ) рулят без проблем...

Если с ISNULL() можно согласиться, то не вдаваясь в дебри методов, нам сравнить св-ва обьектов можно только на момент времени Т, те пока проходим по массиву у эл-та №1 изменилось что-то, а мы уже посчитали, что он совпадает (простой пример, два прогресс бара с разной скоростью заполнения)
...
Рейтинг: 0 / 0
11.02.2005, 01:19
    #32911259
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
Hi PaulWist!

2 объекта на форме уже ПО ОПРЕДЕЛЕНИЮ будут разными при "посвойственном"
сравнении - у нах разные Parent :) а если не на форме, то COMPOBJ как раз и
занимается таким сравнением, и я сильно сомневаюсь что какой-то "сторонний"
процесс может вмешаться в середину этой операции...

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
11.02.2005, 08:43
    #32911400
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
Igor Korolyov

Вообщем, это становиться похожим на флейм

Igor Korolyov 2 объекта на форме уже ПО ОПРЕДЕЛЕНИЮ будут разными при "посвойственном"
сравнении - у нах разные Parent

Да не важно Parent или нет (скорее Parent м.б. одинаковым, а вот TabIndex,если он есть уже будет разным)

Igor Korolyovа если не на форме, то COMPOBJ как раз и
занимается таким сравнением, и я сильно сомневаюсь что какой-то "сторонний"
процесс может вмешаться в середину этой операции

Ну, Игорь, простой пример двух СОМ-прогрессов выполняющих обработку и отрисовку, создаем ссылку на них , в момент времени Т=0 вроде одинаковы, а момент времени Т+1 у первого прошло 10%, а у второго 20%, всё св-ва изменились и обьекты стали не равны, хотя в момент времени Т=100% опять равны.

Да что там далеко ходить, сравнение символьных строк и то вызывает проблему при использовании разных правил сравнения. Думаю м. поставить точку, поскольку автор-то пропал, и так не уточнил задачу.
...
Рейтинг: 0 / 0
13.02.2005, 19:11
    #32913432
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух одномерных массивов
Hi PAulWist!

> Да не важно Parent или нет (скорее Parent м.б. одинаковым, а вот
> TabIndex,если он есть уже будет разным)

Если Parent одинаковы, то Name разные :)

> Ну, Игорь, простой пример двух СОМ-прогрессов

1) Это НЕ простой пример :)
2) Я же сказал про "внешние вмешивающиеся". Конечно в таком случае они будут
разные...

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сравнение двух одномерных массивов / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]