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

Как вариант, если все элементы массива одного типа, возможно пройдет закачка во временную таблицу (APPEND FROM) и последующие Select-SQL.
...
Рейтинг: 0 / 0
Сравнение двух одномерных массивов
    #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
Сравнение двух одномерных массивов
    #32910219
Дмитрий Петров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
за теги видать приняло...
IF .... AND a(i)=b(i)
...
Рейтинг: 0 / 0
Сравнение двух одномерных массивов
    #32910259
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, вместо "=", лучше в таких случаях пользоваться "==".
...
Рейтинг: 0 / 0
Сравнение двух одномерных массивов
    #32910504
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно, приведенное решение можно принять за шаблон, НО вопрос значительно сложнее, как сравнивать NULL и Type() = "O", те значения самого массива.
...
Рейтинг: 0 / 0
Сравнение двух одномерных массивов
    #32910577
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам же себе отвечаю, в общем случае наверное нельзя до тех пор пока не определены правила сравнения, что хочу сказать, например для эл-тов Object, можно сравнить по наличию св-в и их значений, и методов, но реакция методов м.б. разной (название одно, а при выполнении в первом Hello Word, а во втором Hello Excel - спрашивается методы одинаковые или нет), ну и тд.
...
Рейтинг: 0 / 0
Сравнение двух одномерных массивов
    #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
Сравнение двух одномерных массивов
    #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
Сравнение двух одномерных массивов
    #32910703
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
телеграмма 1
-изя уже
ответ
-ох

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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