![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 13.09.2011
Сообщений: 29
|
![]()
Изменил код:
Код:
Если убрать вот эту часть: Код:
Как побороть??? |
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
В b(ii, 2) - строка.
Попробуйте при занесении сразу преобразовать в число: b(ii, 2) = --aa(1) Не удивили эти два минуса в моём коде? Глубже алгоритм не анализировал ![]()
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 13.09.2011
Сообщений: 29
|
![]() |
![]() |
![]() |
![]() |
#14 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Вечером дома гляну на примере. Наверное ещё где-то типы не совпадают.
Можете ещё дополнительно кусок текста с разными годами показать, чтоб было на чём тестить? Лениво в том править...
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 13.09.2011
Сообщений: 29
|
![]()
да, конечно.
Вряд ли типы несовпадают, т.к. если по отдельности вставлять части Код:
Код:
|
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Посмотрел уже - в c(xx, 9) у Вас два значения температуры сразу, поэтому они не делятся на c(xx, 10).
А получается так потому, что в строке c(xx, 9) = c(xx, 9) + aa(7) прибавляете к строке строку. А получается так потому, что такое значение уже есть в словаре - оно туда попадает при проверке на b(ii, 2) < 1979 And b(ii, 2) > 1948 В общем, нужно алгоритм править. Может быть два словаря завести? Или Вам нужно строго параллельно рядом выгружать? Я правда в деталях код не понял... Но предлагаю сделать два словаря и два массива (для каждого диапазона свой) и затем выгрузить их просто рядом на лист. Или как уникальное брать склейку идентификатора группы (придумать одну на группу) и как было. Тогда должно заработать. Наверное...
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 23.09.2011 в 18:09. |
![]() |
![]() |
![]() |
#17 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Да, заработало:
в первом сравнении yr1 = "1|" & aa(0) & "|" & aa(2) & "|" & aa(3) во втором yr1 = "2|" & aa(0) & "|" & aa(2) & "|" & aa(3) Ну и выгрузку нужно подправить: With Workbooks.Add.Worksheets(1) .Range("A1:K1") = Split("index mm dd ia?eia Tsum count Tmid ia?eia Tsum count Tmid") .Columns(1).NumberFormat = "@" .Range("A2:K2").Resize(iii) = c End With Только заголовки чуть изменить - кодировка поползла. Хотя всёж нужно два массива - данные ведь не рядом выгружаются, значит можно сделать два массива, и выгружать рядом, или на разные листы, или строго один под другим, как угодно. И кстати можно ускориться (сократить количество проверок), если изменить код типа так: Код:
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 23.09.2011 в 18:25. |
![]() |
![]() |
![]() |
#18 | |
Пользователь
Регистрация: 13.09.2011
Сообщений: 29
|
![]() Цитата:
На сколько я понял, то массив получается размерностью (iii, 7) Но возник еще вопрос: хочу еще поработать с этими файлами, а именно добавить обработку и создание нового массива: Код:
С чем это связано и как можно исправить? |
|
![]() |
![]() |
![]() |
#19 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Не вникая (ибо нужен рабочий пример с обоими файлами) - посмотрите, что хранится в b(ii, 7) и c(iii, 7). Тут должны быть числа, а не строки. Просто при ошибке наведите мышь и увидите. Ну или в окне Locals можно всё изучить.
Из текста Вы получаете строку, и её нужно перед помещением в массив преобразовать в числа - те числа, которые будете считать. Остальные данные можно не преобразовывать.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#20 |
Пользователь
Регистрация: 13.09.2011
Сообщений: 29
|
![]()
Все получилось!
Ув. Hugo121, спасибо Вам огромное!!! А не подскажите, в чем ошибка в следующем коде: Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дан динамический массив строк, вывести все слова начинающиеся с большой буквы C++ builder | Memphi[s] | Помощь студентам | 0 | 02.03.2011 16:34 |
Большой объем данных | matanga | Microsoft Office Excel | 4 | 09.12.2010 13:14 |
SQL - обьединение и управление несколькими базами данных | MarinN | SQL, базы данных | 1 | 08.11.2010 10:09 |
Как виделить большой кусок памяти под массив? | Tania | Мультимедиа в Delphi | 7 | 23.04.2010 01:53 |
Поиск min/max данных с несколькими условиями - нужна помощь! | /nort/ | Microsoft Office Excel | 3 | 16.03.2008 00:13 |