|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.06.2014, 18:18 | #1 |
Пользователь
Регистрация: 29.11.2011
Сообщений: 40
|
Как сгруппировать текстовые данные?
Добрый день!
Бьюсь как рыба об лед а нормального решения пока нет. Есть данные в таблице где уникальные ключи расположены в столбик мне необходимо перенести их в заглавную строчку и сохранить соответствующие им данные. Попробовал самописный макрос(vbs script): на 17 тыс запесей 10 минут для меня это не приемлемо. PHP код:
Прощу о помощи более опытных товарищей. Заранее спасибо за помощь всем кто отзовется! |
11.06.2014, 18:26 | #2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Ну конечно перебирать 17 000 ячеек не может быть быстро, тут никакой словарь не поможет.
Ещё массивы нужны. vbs - это принципиально? Тогда давайте весь скрипт, чтоб потестить, но не писать Писать код пока не пойму как - т.е. что есть и что надо. Да и домой пора... Но алгоритм такой - всё в массив, циклом загоняем в словарь ключ "15:00|Чип" и Item "говорит" и т.д. Далее создаём массив под результат (или берём готовое с листа) и циклом в цикле заполняем из словаря - ключи берём из массива. Или иначе - циклом по результату в один словарь кладём все времена и их позиции, в другой чипов/дейлов с позициями. Затем циклом по массиву-источнику сразу раскладываем по местам на основе ключей (позицию берём из словарей).
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 11.06.2014 в 18:35. |
11.06.2014, 19:49 | #3 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
17 тыс. строк - 20 сек.
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
11.06.2014, 21:09 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Я думаю макросом можно в 5 сек. уложиться. На моей машине, не быстрой...
webmoney: E265281470651 Z422237915069 R418926282008
|
12.06.2014, 10:57 | #5 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Вообще хотелось бы видеть реальные исходные данные - т.к. с этим временем сплошной геморой - 3 раза преобразовываю, плюс ещё нужно форматировать результат (если в чистое поле выгружаем).
Попробуйте на 17000 строк (делал под расположение точно как в примере!): Код:
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 12.06.2014 в 13:55. |
12.06.2014, 12:38 | #6 |
Пользователь
Регистрация: 29.11.2011
Сообщений: 40
|
Как раз вам ответ писал. 1 секунду тестирую ваш код
|
12.06.2014, 13:07 | #7 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Секунду тестируете или за секунду отрабатывает?
Полчаса тестируете уже...
webmoney: E265281470651 Z422237915069 R418926282008
|
12.06.2014, 13:25 | #8 |
Пользователь
Регистрация: 29.11.2011
Сообщений: 40
|
Да пытаюсь разобраться в ошибке Run-time error 9: subscript out of range
Вот приблизительно реальный пример данных. Ошибка массивов пока сложно у вас в коде понимаю каких |
12.06.2014, 13:41 | #9 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Мой косяк, исправил код выше...
Ошибка была в строке Код:
Ещё подправил формат, т.к. реальные данные другие, на "m/d/yyyy h:mm" И для этого файла корректнее будет Код:
Отрабатывает за 2 секунды. Если прокликивать конфликты (включив их) - уложился в 16
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 12.06.2014 в 13:57. |
12.06.2014, 14:04 | #10 |
Пользователь
Регистрация: 29.11.2011
Сообщений: 40
|
Это просто супер. Очень большое спасибо единственное не могу понять в синтаксисе определения переменных:
Код:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сгруппировать 2 запроса между собой? | Predator199 | PHP | 4 | 09.08.2012 22:56 |
Пожобрать текстовые данные | димон4ик_ | Помощь студентам | 2 | 23.10.2011 11:25 |
как сгруппировать строки в Excel? | biv | Microsoft Office Excel | 36 | 04.09.2010 15:00 |
Формулы массива или сгруппировать данные | kzld | Microsoft Office Excel | 10 | 30.11.2009 18:59 |
текстовые данные в С++ | Giffon | Общие вопросы C/C++ | 4 | 29.11.2009 22:39 |