![]() |
![]() |
![]() |
|
Обход элементов массива | ☑ | ||
---|---|---|---|---|
0
breezee
03.12.15
✎
12:00
|
У меня есть строка вида "КО_1,2;11,22+КО_3,3;11,22+КО_1,2;4,4+КО_5,5;55,55"
Эту строку я разбиваю в массив в котором содержаться стрктура. В этой струткуре содержится счет МассивКООб[Тут мои счета]. Т.е. МассивКООб[0]=КО_1,2;11,22 У этого элемента массива Счета содержаться в значение структуры "СЧЕТ" Т.е. МассивКООб[0].СЧЕТ = 1,2;11,22 А в этом счете содержаться еще 2 массива. В одном счета слева МассивКООб[0].СЧЕТ[0] = 1,2 и счета справа МассивКООб[0].СЧЕТ[1] = 11,22 И в этотом массиве еще 1 массив. Т.е. чтобы получить "1" из счета "КО_1,2;11,22" Мне нужно обратиться К МассивКООб[0].СЧЕТ[0][0]=1. Из этой строки мне нужно найти все элементы самого верхнего массива МассивКООб[0] В котором одинаковы все элементы МассивКООб[к].СЧЕТ[0] или МассивКООб[кк].СЧЕТ[1].(к и ж - от 0 до конца количтва элементов главного массива МассивКООб[]) Т.е. в результате мне должно сказать что по кредиту у меня одинаковые счета Одинаковые по кредиту КО_1,2;11,22+КО_1,2;4,4 Одинаковые по дебету КО_1,2;11,22+КО_3,3;11,22 У меня же ничего не выбирается. Я совсем запутался и не могу даже в отладчике все это дело наладить. Я сделал обход, на мой взгляд рабочий. Я не понимаю почему он не работает. Может подскажите? Вот код где я обхожу Для к = 0 По ОбщееКоличествоКОСчетов цикл //Обход всех КО ОписаниеВнешний = МассивКООб[к].ОПИСАНИЕ; //КО с Которым сравниваю //КРЕДИТ////////////////////////////////////////////////////////////////////////////////////////////КРЕДИТ/ Для ж = 0 По МассивКООб[к].СЧЕТ[0].Количество()-1 цикл //По счетам кредита верхнего КО СчетКредитаВнешний = МассивКООб[к].СЧЕТ[0][ж]; //Получаю счет кредита верхнего КО //Внутренний цикл по кредиту Для кк = 0 По ОбщееКоличествоКОСчетов цикл //Обход всех КО для еще раз для сравнения ПолноеСовпадениеКредит = 0; Если МассивКООб[к].СЧЕТ[0].Количество()= МассивКООб[кк].СЧЕТ[0].Количество() и к<>кк тогда //Если не разное количество счетов или тот же самый счет Для жк = 0 По МассивКООб[кк].СЧЕТ[0].Количество()-1 цикл //По счетам кредита нижнего КО СчетКредитаВнутренний = МассивКООб[кк].СЧЕТ[0][жк]; //Получаю счет кредита внутреннего КО Если СчетКредитаВнешний = СчетКредитаВнутренний тогда //Если счета не равны ПолноеСовпадениеКредит = ПолноеСовпадениеКредит + 1; //Если совпало хоть с одни КонецЕсли; КонецЦикла; КонецЕсли; Если ПолноеСовпадениеКредит = МассивКООб[к].СЧЕТ[0].Количество() Тогда ОписаниеВнутреннийКТ = МассивКООб[кк].ОПИСАНИЕ; Сообщить("1В счете "+ОписаниеВнешний+" и счете "+ ОписаниеВнутреннийКТ+" Совпало" + ПолноеСовпадениеКредит); КонецЕсли; КонецЦикла; //Внутренний цикл по кредиту КонецЦикла; //DEBET////////////////////////////////////////////////////////////////////////////////////////////DEBET/ Для ж1 = 0 По МассивКООб[к].СЧЕТ[1].Количество()-1 цикл //По счетам кредита верхнего ДО СчетКредитаВнешний = МассивКООб[к].СЧЕТ[1][ж1]; //Получаю счет кредита верхнего ДО //Внутренний цикл по кредиту Для кк1 = 0 По ОбщееКоличествоКОСчетов цикл //Обход всех КО для еще раз для сравнения ПолноеСовпадениеКредит = 0; Если МассивКООб[к].СЧЕТ[1].Количество()= МассивКООб[кк1].СЧЕТ[1].Количество() и к<>кк1 тогда //Если не разное количество счетов или тот же самый счет Для жк1 = 0 По МассивКООб[кк1].СЧЕТ[1].Количество()-1 цикл //По счетам кредита нижнего ДО СчетКредитаВнутренний = МассивКООб[кк1].СЧЕТ[1][жк1]; //Получаю счет кредита внутреннего ДО Если СчетКредитаВнешний = СчетКредитаВнутренний тогда //Если счета не равны ПолноеСовпадениеКредит = ПолноеСовпадениеКредит + 1; //Если совпало хоть с одни КонецЕсли; КонецЦикла; КонецЕсли; Если ПолноеСовпадениеКредит = МассивКООб[к].СЧЕТ[1].Количество() Тогда ОписаниеВнутреннийКТ = МассивКООб[кк1].ОПИСАНИЕ; Сообщить("2В счете "+ОписаниеВнешний+" и счете "+ ОписаниеВнутреннийКТ+" Совпало " + ПолноеСовпадениеКредит); КонецЕсли; КонецЦикла; //Внутренний цикл по кредиту КонецЦикла; |
|||
1
Горогуля
03.12.15
✎
12:11
|
этот глист страдал глистами, что мучались глистами сами
|
|||
2
hhhh
03.12.15
✎
12:16
|
вроде правильно работает. Ведь нет полностью совпадающих счетов.
|
|||
3
hhhh
03.12.15
✎
12:18
|
попробуй
ПолноеСовпадениеКредит = 1; почему 0 у тебя? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |