Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите разобраться с двумя массивами / 7 сообщений из 7, страница 1 из 1
06.10.2011, 12:24
    #37470674
Bobax012
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с двумя массивами
Условие на картинке.
Честно с массивами не работал, но вот тут нужда заставила писать более сложную программу и теперь ищу вашей поддержки.

Есть 2 таблицы, как считать данные с таблицы Второй в массив, если он имеет такую структуру, как на рисунке и в дальнейшем сравнивать Код Первого массива с кодом Второго, т.е. если значение кода Первый (1)= код Второй(3) идет сравнение наименований т.е. Первый (1) - стул = Второй(3) - цветы? Если нет, сверяем дальше Первый (1) - стул = Второй(3) – трава? и.т.д

Как это можно организовать?
...
Рейтинг: 0 / 0
06.10.2011, 16:17
    #37471205
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с двумя массивами
Bobax012,

а что должно быть в остатке? Покажите результирующую таблицу. Пояснения не достаточно ясны.

И еще. Где находятся исходные данные? В текстовом файле, в екселе, в БД?
...
Рейтинг: 0 / 0
06.10.2011, 23:43
    #37471972
Bobax012
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с двумя массивами
mds_worldBobax012,

а что должно быть в остатке? Покажите результирующую таблицу. Пояснения не достаточно ясны.

И еще. Где находятся исходные данные? В текстовом файле, в екселе, в БД?


Данные находятся в таблицах MSHFlexGrid (загрузил их из текстовых файлов).
Хочу данные обеих таблиц считать в массивы и затем проверять на схожесть.
Вот еще раз пример
Если Первый (1)= Второй(3), тогда идет проверка их Наименований
Смотрим, Первый (1) – Стул равен Второй(3) – Цветы? НЕТ
Проверяем следующий элемент во 2 таблице
Смотрим, Первый (1) – Стул равен Второй(3) – Трава? НЕТ
Проверяем следующий элемент во 2 таблице
Смотрим, Первый (1) – Стул равен Второй(3) – Стул? ДА
Исключить из Второго массива эту строку, т.е. в нем останется Цветы, Трава, Бумага
Пишем в ListBox Первый (1) – Стул (СУЩЕСТВУЕТ)
Переходим в следующему элементу Первого массива
Смотрим, Первый (1) – Паста равен Второй(3) – Цветы? НЕТ
Проверяем следующий элемент во 2 таблице
Смотрим, Первый (1) – Паста равен Второй(3) – Трава? НЕТ…
Если наименование 1-го массива не нашлось во втором, просто переходим к следующей строке 1-го массива т.е. Первый (1) – Мыло

Результат записываю в ListBox в таком виде
Первый (1) – Стул (СУЩЕСТВУЕТ)
Первый (1) – Паста (НЕ СУЩЕСТВУЕТ)
Первый (1) – Мыло (НЕ СУЩЕСТВУЕТ)
...
Рейтинг: 0 / 0
07.10.2011, 00:14
    #37471997
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с двумя массивами
ключевое слово ТРАВА!
...
Рейтинг: 0 / 0
07.10.2011, 00:31
    #37472001
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с двумя массивами
Bobax012,
- как поступать в том случае, если коды первого и второго массива совпадают ?
- могут ли быть повторения наименований в первом массиве (при одинаковых кодах/ при разных кодах) ?
- могут ли быть повторения наименований во втором массиве (при одинаковых кодах/ при разных кодах) ?
...
Рейтинг: 0 / 0
07.10.2011, 01:08
    #37472020
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с двумя массивами
Bobax012,
Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
' допущения:
'  -наименования в первой таблице уникальны
'  -значения с одинаоквыми кодами не сравниваются

dim n&, m&
dim arr1$(), arr2$(), arr3$()
dim i&,ii&

' получем количество записей в первой и второй таблице в переменные n и m
' ...

' инициализируем массивы
redim arr1( 1  to n,  1 )
redim arr2( 1  to m,  1 )
redim arr3( 1  to n)

' заполняем массивы arr1 и arr2 данными из первой и второй таблицы
' коды берем без префиксов "Первый (", "Второй (" 
' ....

' ищем соответствий
for i= 1  to n
  for ii= 1  to m
  if arr1(i, 0 )<>arr2(ii, 0 ) then  'коды не равны
    if arr1(i, 1 )=arr2(ii, 1 ) then ' наименования равны
	  arr3(i)="Первый ("& arr1(i, 0 ) &" - "& arr1(i, 1 ) &" (СУЩЕСТВУЕТ)"
	  exit for
	end if
  end if
  next ii
  if len(arr3(i))= 0  then _
  arr3(i)="Первый ("& arr1(i, 0 ) &" - "& arr1(i, 1 ) &" (НЕ СУЩЕСТВУЕТ)"
next i

' заполняем листбокс значениями массива arr3
' ...

' освобождаем память
erase arr1,arr2,arr3
...
Рейтинг: 0 / 0
11.10.2011, 16:58
    #37477553
Bobax012
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с двумя массивами
скукотища,

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


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