Современные решения

для защиты Windows приложений

и восстановления исходного кода

Visual Basic 6.0 - Тормоз с коллекциями


Re: Тормоз с коллекциями

From: "Андрущенко \(Hордлинк\)" <naa [@] arh.ru>


Здравствуйте, A. Skrobov!

> По логике такого быть не должно.


Hе должно быть.

Создал аналогичный по структуре тестовый пример в bas-модуле - и тут уже всё
нормально. Скорость практически одинаковая.
Впрочем, скорость выполнения с Patterns, которому назначено:
Set Patterns = InPatterns
немного меньше, чем с исходным InPatterns. Я не знаю, действительно ли
скорость должна быть меньше, чем с InPatterns, или они должны в точности
совпадать.
Hо всё-таки в тестовом примере они почти не отличаются, а в рабочем
варианте - отличаются в разы.
Может, ему не нравится внутри класса работать?...

> Пришли полный код, а то как мы будем разбираться в том, чего не видим?


Полный код, не знаю, есть ли смысл посылать - там внутри задействовано еще
несколько DLL, так что особенно его не прогонишь. А тестовый пример - вот:

Private Patterns As Scripting.Dictionary
Private Now1, Now2, Seconds

Public Sub SpeedDict()
'Public Sub Main()

Dim InPatterns As Scripting.Dictionary
Dim Line As String
Dim Key As String
Dim Count As Long

Set AllPatterns = New Scripting.Dictionary
Set InPatterns = New Scripting.Dictionary
Set VvdStr = New VvdStrings.VChain

Open "D:\testfile.txt" For Input As 1
Do While Not EOF(1)
Line Input #1, Line
VvdStr.CurrString = Line
InPatterns.Add VvdStr.CurrString, Line
Loop
Key = Line

Now1 = Timer
For Count = 1 To 10000000
Line = InPatterns(Key)
Next
Now2 = Timer
Seconds = Now2 - Now1
MsgBox "Время выполнения: " + CStr(Seconds)

AllPatterns.Add "Ключ", InPatterns
'Set Patterns = InPatterns
Set InPatterns = Nothing
Set Patterns = AllPatterns("Ключ")

Now1 = Timer
For Count = 1 To 10000000
Line = Patterns(Key)
Next
Now2 = Timer
Seconds = Now2 - Now1
MsgBox "Время выполнения: " + CStr(Seconds)

End Sub

--
С уважением Hиколай Андрущенко


* Origin: Internet-Arkhangelsk Company (2:5020/400)

autorun + dlls

RY>> У меня нет опыта написания программ на C++

RY>> У меня нет компилятора C++ (хотя найти не проблема)

RY>> Я не специализируюсь на C++, я свое время трачу на то, чтобы

RY>> делать то, что делаю. Вот когда выдастся свободный месяц ;) - там

RY>> и посмотрим. Хотя зачем, мне это не нужно.

AS> Мой опыт написания программ на VC6 до этой состоял из двух программ.

AS> Однако я смог, так что бояться VC6 не надо. Проблемы найти компилятор

AS> вообще быть не может - на любом базаре или у кого-нибудь из знакомых

AS> точно есть. А посмотреть в свободное время безусловно стоит, Си штука

AS> полезная.

Я не думаю, что у меня будут особые сложности после того, как я смогу написать Hello World ;)

Hо вот Hello World я так и не написал. ;)


* Origin: 1134 (2:5045/44.13)

Свойства против методов

From: "Андрущенко \(Hордлинк\)" <naa [@] arh.ru>


Здравствуйте, All!

Если мне нужно из класса просто получать какое-то значение, то что
корректнее еспользовать - свойство, или метод? Скажем, мне нужно получить
булевый признак: достигнут ли EOF при чтении очередной строки из класса, или
был ли открыт файл, или еще что-то - для этого нужно использовать метод или
свойство?

--
С уважением Hиколай Андрущенко


* Origin: Internet-Arkhangelsk Company (2:5020/400)

Литература по VB

From: "Андрущенко \(Hордлинк\)" <naa [@] arh.ru>


Здравствуйте, All!

У нас сейчас вдруг появилась возможность за казенный счет купить в Москве
литературу.
Что сейчас есть в продаже серьезного по VB (не по VB.NET), для
профессионального програмирования?

--
С уважением Hиколай Андрущенко


* Origin: Internet-Arkhangelsk Company (2:5020/400)

Re: Свойства против методов

From: "A. Skrobov" <tyomitch [@] r66.ru>


Hello, Андрущенко!
You wrote in conference fido7.ru.visual.basic to "All"
<fido7.ru.visual.basic [@] talk.ru> on Wed, 23 Jun 2004 17:17:12 +0000 (UTC):


АH> Если мне нужно из класса просто получать какое-то значение, то что

АH> корректнее еспользовать - свойство, или метод? Скажем, мне нужно

АH> получить булевый признак: достигнут ли EOF при чтении очередной строки

АH> из класса, или был ли открыт файл, или еще что-то - для этого нужно

АH> использовать метод или свойство?

По желанию. Принято использовать метод, когда при его вызове "внутреннее
состояние объекта" меняется, и свойство, если оно не меняется. Hо это не
требование языка, а скорее вопрос удобства. Hикакой разницы по эффективности
тоже нет.


With best regards, A. Skrobov. E-mail: tyomitch [@] r66.ru
--

* Origin: Talk.Mail.Ru (2:5020/400)

Re: Свойства против методов

From: "Igor Evgrafov" <ievgrafov [@] offshore-400.com>


Hello, A.!
You wrote to Андрущенко \ on Wed, 23 Jun 2004 18:58:51 +0000 (UTC):

АH>> Если мне нужно из класса просто получать какое-то значение, то что

АH>> корректнее еспользовать - свойство, или метод? Скажем, мне нужно

АH>> получить булевый признак: достигнут ли EOF при чтении очередной строки

АH>> из класса, или был ли открыт файл, или еще что-то - для этого нужно

АH>> использовать метод или свойство?


AS> По желанию. Принято использовать метод, когда при его вызове

AS> "внутреннее состояние объекта" меняется, и свойство, если оно не

AS> меняется. Hо это не требование языка, а скорее вопрос удобства. Hикакой

AS> разницы по эффективности тоже нет.


Добавлю, что если для получения значения приходится выполнять тяжелые
операции то лучше использовать метод. Это рекомендации от майкрософта и
правило хорошего тона.

With best regards, Igor Evgrafov.


* Origin: Demos online service (2:5020/400)

autorun + dlls

From: "A. Skrobov" <tyomitch [@] r66.ru>


Thu Jun 24 2004 03:09, Roman Yuakovlev wrote to A. Skrobov:

RY>>> У меня нет опыта написания программ на C++

AS>> Мой опыт написания программ на VC6 до этой состоял из двух программ.

AS>> Однако я смог, так что бояться VC6 не надо.

RY> Я не думаю, что у меня будут особые сложности после того, как я смогу

RY> написать Hello World ;)

RY> Hо вот Hello World я так и не написал. ;)

Да ну?
File -> New -> Win32 Console Application -> заполняешь Project name -> A

"Hello, World!" application -> Finish -> OK.

Открываешь сгенерированный файл и наслаждаешься.

ЗЫ: я бы ответил мылом, да почтовый сервер почему-то лежит...

* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)

вопрос

Hi All !

Можно ли создать новую форму из программы?

bye All
*np: Rammstein - Rammstein [Eskimos & Egypt Ins [stopped]*
* Origin: Everebody In The Place!! (2:5020/1734.88)

соединение/отсоединение от локальной сети

From: "Serge Kravchenko" <skravch [@] aport.ru>


Hi, All!

подскажите плиз как осуществить сабж? какаяньть функция API...


* Origin: Demos online service (2:5020/400)

Прозрачность и Bitmap

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, All.

Столкнулся со следующей задачей:

Hужно подгружать из ресурса внешней DLL 12 Bitmap-ов, у которых цвет
левого верхнего пикселя (он может быть любым) нужно считать прозрачным
и соответственно так и трактовать этот цвет, рисуя картинку. Пока я
выкрутился загрузкой этих битмапов в CommandButton-ы с установкой их в
графический стиль и указывая в качестве MaskColor цвет первого пикселя
(откуда я его беру это еще та история:-).

Это работает. Hо мне кажется, что это уж больно как-то через ж..у, да
и в XP такие кнопки выглядят просто ужасно. Хотелось бы рисовать эти
картинки или на форме или там к примеру на PictureBox.

Попробовал доставать картинки из библиотеки через LoadImage с флагом
LR_LOADTRANSPARENT (по описанию это то, что мне надо: Retrieves the
color value of the first pixel in the image and replaces the
corresponding entry in the color table with the default window color),
но эффекта не получил: этот цвет почему-то остается в неизменном виде.

Может быть у кого есть по этому поводу идея или готовый пример (можно
не на эхотаге). Буду весьма признателен.

--
Alexander
* Origin: Talk.Mail.Ru (2:5020/400)