|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.02.2009, 14:56 | #1 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Нужна идея
Господа, есть телевизионная программа ТВпрограмма.rar. Нужно ее структурировать. Т.е. разделить программы по каналам, дням выхода, названию программы и времени выхода.
Я попытался это сделать классами, но не хватает элементов в коллекции. Им может быть только 256, а мне нужно больше. Какие будут идеи? P.S. Большое спасибо EducatedFool за пример работы с классами.
Лучше день потерять — потом за пять минут долететь!©
|
04.02.2009, 15:27 | #2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Код:
Сделай 2 класса: первый - программа за день (содержит коллекцию элементов 2-го класса) второй - телепередача (имеет 2 или 3 свойства типа: время, наименование телепередачи, дата) Так (с двумя классами, а не с одним), мне кажется, будет потом удобнее работать, если ты на основе полученных коллекций будешь формировать программу в другом формате. Хотя, в принципе, и одного класса хватит... А почему программа в формате Word? Ты её сам преобразуешь из формата HTML, или она тебе поступает изначально в таком виде? |
|
04.02.2009, 15:48 | #3 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Результат на картинке
Вложение 8563 Думаю, что нужно три класса: один — программа за неделю, второй — программа за день, третий соственно сама программа с именем канала, и временем выходаю
Лучше день потерять — потом за пять минут долететь!©
Последний раз редактировалось viter.alex; 15.04.2009 в 14:44. |
04.02.2009, 15:50 | #4 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Я проверял этот код в VBA Office 2003. Мои программы (которые используют коллекции из тысяч элементов) запускались и под Office 2003, и под Office 2007. (проверял в Excel и в Word) Попробуй не 500 000, а 50 000... Цитата:
Ты объясни, для чего ты это хочешь использовать... По поводу Overflow: я как-то видел в твоём коде строки типа: DefInt I Переполнение возникает как раз из-за этого. Попробуй в цикле заменить i на j
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 04.02.2009 в 15:58. |
||
04.02.2009, 16:03 | #5 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Поскольку у меня стоит Option Explicit, то i я объявил как Integer. В этом и проблема.
Вот код, который помог выявить ошибку: Код:
А почему же тогда в класс добавлялось только 256 элементов Добавлено Игорь, посмотри, сколько членов показывает окно Locals для коллекции coll Добавлено Показывать-то, оно показывает, но членов в коллекции больше. Оказывается первый код работает правильно, только с именами каналов нужно поработать, а то не записываются.
Лучше день потерять — потом за пять минут долететь!©
Последний раз редактировалось viter.alex; 04.02.2009 в 16:11. |
04.02.2009, 16:13 | #6 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Создай модуль класса Class1
У этого класса определи одно свойство: Код:
В стандартном модуле напиши: Код:
PS: Убери все свои DefInt I, DefBool B и т.д. - и проблем не будет... (добавлено) Действительно, почему-то в окне Watches отображается только 256 элементов Однако, если ты запустишь код: Код:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 04.02.2009 в 16:16. |
04.02.2009, 16:26 | #7 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Зачем? Мне так удобнее.
Лучше день потерять — потом за пять минут долететь!©
|
05.02.2009, 13:23 | #8 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Сделал с одним классом для телепрограммы со свойствами канал, название и время выхода и с двумя коллекциями: одна для дней недели, которая хранит все программы данного дня и вторая для недели, которая хранит все коллекции дней.
Но теперь пояыился еще вопрос. При создании коллекции недели я ключом к элементу коллекции назначаю дату. Как прочитать этот ключ?
Лучше день потерять — потом за пять минут долететь!©
|
05.02.2009, 17:12 | #9 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Я бы сделал по-другому... Цитата:
Есть более простые способы достижения результата. Достаточно добавить в главный класс метод, возвращающий нужный элемент подкласса с заданными свойствами, и всё. Чуть попозже объясню, как лучше сделать. Если ты прикрепишь файл с уже имеющимся кодом - будет намного проще. Не забудь описать, что требуется получить в итоге, т.е. для каких целей предназначена прога.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 05.02.2009 в 17:21. |
||
05.02.2009, 18:23 | #10 | ||
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Цитата:
Цитата:
Добавлено позже Есть еще идея использовать «user-defined data type» . Почитал справку, вроде подходит. Опять придется код переписывать
Лучше день потерять — потом за пять минут долететь!©
Последний раз редактировалось viter.alex; 05.02.2009 в 20:03. |
||
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Есть идея для создания игры!!! | Mb666 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 8 | 01.04.2009 23:59 |
Идея: Анализатор сайтов с искусственным интелектом | NoComm | Свободное общение | 4 | 05.01.2009 09:30 |
есть одна идея | Askar_g | Работа с сетью в Delphi | 5 | 26.12.2008 09:24 |
Идея по определению ip сервера | ben95 | Работа с сетью в Delphi | 4 | 07.05.2008 23:09 |
Есть идея, но не знаю, как сделать. | Небесный | Свободное общение | 22 | 01.04.2007 18:07 |