Collection max size

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Izia
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 02.07.2006 (Вс) 18:18

Collection max size

Сообщение Izia » 03.07.2006 (Пн) 0:08

Sorrry i'll post it in another place!
Последний раз редактировалось Izia 03.07.2006 (Пн) 0:22, всего редактировалось 2 раз(а).

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 03.07.2006 (Пн) 0:12

1) Если у вас нет 120 постингов или правило 23315
2) А зачем в коллекции хранить строки?
3) Что-то я не припоминаю никаких лимитов...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Collection max size

Сообщение tyomitch » 03.07.2006 (Пн) 0:19

Izia писал(а):Вопрос в следующем: Collection позволяет работать только с 256 данными

Ничего подобного. Хоть стотыщ.
Изображение

Izia
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 02.07.2006 (Вс) 18:18

Сообщение Izia » 03.07.2006 (Пн) 0:27

Код: Выделить всё

Private colData As Collection

Private Sub Class_Initialize()
    Set colData = New Collection
End Sub

Public Sub Clear()
    Set colData = New Collection
End Sub

Public Function Count() As Long
    Count = colData.Count
End Function

Public Sub Enqueue(value As Variant)
    colData.Add value
End Sub

Public Function Dequeue() As Variant
    Dequeue = colData.Item(1)
    colData.Remove 1
End Function

Public Function Peek() As Variant
    Peek = colData.Item(1)
End Function

Private Sub Class_Terminate()
    Set colData = Nothing
End Sub


Назовём этот класс Queue

Public Buffin as New Queue

Если сделать петлю в которой будет 1000 раз Buffin.Enqueue(string)
войдёт только 256 - проверьте!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.07.2006 (Пн) 0:32

Тестовый код:
Код: Выделить всё
Option Explicit
Public Buffin As New Queue
Const str1ng = "Да гонишь ты всё!"

Sub Main()
Dim i As Long
For i = 1 To 100000
    Buffin.Enqueue str1ng
Next
MsgBox Buffin.Count, , str1ng
End Sub

запусти и убедись.
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 03.07.2006 (Пн) 0:34

доказательство
Вложения
Video-0003.rar
:)
(98.77 Кб) Скачиваний: 50
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Izia
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 02.07.2006 (Вс) 18:18

Сообщение Izia » 03.07.2006 (Пн) 0:47

Вы меня убиваете, всё верно у Вас работает, а меня - нет! Может какие то настройки компайлера?!!!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.07.2006 (Пн) 0:48

Хакер, чем ты такие классные ролики делаешь?
Я тоже хочу! :-)
Изображение

Izia
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 02.07.2006 (Вс) 18:18

Сообщение Izia » 03.07.2006 (Пн) 1:09

Может мне к vb6 надо какие нибудь обновления?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 03.07.2006 (Пн) 1:10

2Izia
Нет. Проверь наш код. возможно 256 это косвенное воздействие чего либо на данный код. Если наш (вот именно тот что tyomitch предложил) не сработет - то... хм... эээ.... даже не знаю :oops:

2tyomitch
SnagIt 7.0.2

А где ты ещё видел такие мои ролики???
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 03.07.2006 (Пн) 13:35

Я вот тут лежал ночью думал из за чего же это может быть... так вот:

скорее всего у тебя элементы где то индексируются (например при создании).

Причём:
1) переменная индексатор объявлена как Byte
+
2) Индексация начинается с 0
+
3) Там стоит On Error ...

поэтому ошибки 6 не происходит, но и новые элементы не добавляются.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Izia
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 02.07.2006 (Вс) 18:18

Сообщение Izia » 03.07.2006 (Пн) 21:30

Большое спасибо за помощь!
Всё оказывается несколько проще... Я делал "дурную" проверку, добавлял Buffin в watch window, а саму информацию не проверял, так вот не знаю почему,но в watch window видно только 256 первых элементов, тогда как на самом деле прописываются все!!! Так что главная проблема ушла, остался вопрос - почему в watch window видно только 256 элементов?!!!

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 03.07.2006 (Пн) 21:31

Izia
Первые или последние элементы отображаются?

Izia
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 02.07.2006 (Вс) 18:18

Сообщение Izia » 03.07.2006 (Пн) 23:36

Первые 256

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.07.2006 (Пн) 23:41

Подтверждаю. Видимо, баг.
Изображение

Izia
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 02.07.2006 (Вс) 18:18

Сообщение Izia » 03.07.2006 (Пн) 23:45

tyomitch
Хакер
Ну, вот и чудненько! Ещё раз большое спасибо за быстрые ответы, и извините за пост не в предназначенной категории! Буду исправлятся.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 53

    TopList