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

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

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

Visual Basic 6.0 - Сортировка


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, 14 Jul 2004 14:01:21 +0000 (UTC):


АH> Есть ли какое-то стандартное средство для выполнения сортировки данных

АH> (массива, коллекции, ...)? Имеется в виду - не запихивание их в БД или

АH> еще куда-то только ради того, чтобы отсортировать их, а просто

АH> напустить на данные какую-нибудь функцию?

АH> Как ни странно - в MSDN по этому поводу ничего не нашел.

Есть только qsort, но она cdecl и без переходника не работает.
Её аналог на VB есть в книге "Hardcore VB", а та есть в МСДH, по крайней
мере в моём :-)
Если в твоём нету, могу кинуть.
--

* Origin: Talk.Mail.Ru (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, 14 Jul 2004 14:01:21 +0000 (UTC):


АH> Можно ли в казенной VB-коллекции получить значение ключа для нужной

АH> записи?

Hет.

Если тебе это нужно, юзай Scripting.Dictionary
--

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

кракеры

Вот, сделали кряк раньше, чем программа толком распространилась. Я, конечно, написал в будующих версиях рядом с алгоритмом защиты, что программа проклята, и взломавший ее будет иметь дело с самой Blar's witch, но все же интересует, как лучше зашифровать то место, где делается If key = true? Желательно, не меняя защиты, и т.п.?


* Origin: 1134 (2:5045/44.13)

ReadFile/WriteFile

Блин, почему не хочет работать ReadFile/WriteFile?

Уже несколько месяцев, по сути, кручу - не хочет и все... :(


Private Function CopyBlock(blockstart As Double, bsize As Long) As String
Dim z As Long
z = bsize
If z > 0 Then ReDim myBlock(z - 1) Else Exit Function

MakeSizes blockstart, pz1, pz2
SetFilePointer inhandle, pz2, pz1, 0
SetFilePointer outhandle, pz2, pz1, 0

'<
ReadFile inhandle, myBlock(0), z, 0, 0&
LastError = GetLastError
WriteFile outhandle, myBlock(0), z, 0, 0&
LastError = GetLastError
'>


SetFilePointer outhandle, CLng(pz2), CLng(pz1), 0
End Function

Все нормально, файлы открыты/закрыты, поинтеры скачут, как надо, т.е. независимо от того, добавить или убрать блок '< '> - в файл ничего не пишет - сплошные нули ;( но файл на выходе получается нужного размера. ;)


Деклары:

Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, dwOverlapped As Long) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal dwOverlapped As Long) As Long
* Origin: 1134 (2:5045/44.13)

работа с постоянными данными более 2гб-1

>> Кто нибудь часто работает с данными? Может у кого есть уже готовые

>> функции для замены Put, Get, Mod, Etc... замену для \ и Mod то я

>> сделал, с файлами тоже вроде потихоньку работаю (по крайней мере,

>> llseek на SetFilePointer с конвертацией типов почти удалось заменить

>> [файлы делает не такого размера, как я просил, но уже больше 2х гб]

>> ;)

AT> SetFilePointerEx, например, принимает LARGE_INTEGER, в VB можно

AT> заменить это типом Currency, и не нужно будет ничего конвертировать.

SetFilePointer тоже его превосходно понимает. ;)

Конвертить - не смертельно.

А вот ReadFile/WriteFile - не хотит работать. ;(


* Origin: 1134 (2:5045/44.13)

ReadFile/WriteFile

RY> Private Function CopyBlock(blockstart As Double, bsize As Long) As

RY> String Dim z As Long z = bsize If z > 0 Then ReDim myBlock(z - 1) Else

RY> Exit Function MakeSizes blockstart, pz1, pz2 SetFilePointer inhandle,

RY> pz2, pz1, 0 SetFilePointer outhandle, pz2, pz1, 0


RY> '<

RY> ReadFile inhandle, myBlock(0), z, 0, 0&

RY> LastError = GetLastError

В myBlock оно читается!

RY> WriteFile outhandle, myBlock(0), z, 0, 0&

RY> LastError = GetLastError

RY> '>

LastError = 0


RY> SetFilePointer outhandle, CLng(pz2), CLng(pz1), 0

Это вообще ошибка ;)

RY> End Function

Т.е. читается, но не пишется. ;(


* Origin: 1134 (2:5045/44.13)

разница в записи

>> У меня более ста констант. Еще как назло руку вывихнул. И сижу, к

>> каждой приписываю As String. И думаю - а оно мне надо?

AT> А что, Find & Replace уже не в моде?

А что можно финдить и реплейсить? Учитывая, не зная, что финдить и реплейсить.
К тому же, по крайней мере на моей клавиатуре, лучше буквами набрать, чем клавишами управления пользоваться. Т.е. рук снимать не надо.


* Origin: 1134 (2:5045/44.13)

Пpокpутка в TextBox

RY>>>> Правда я решил вопрос намного проще. ;)

AS>>> Весьма любопытно - и как?

RY>> Смеяться будете. Без апей и сабклассингов. причем делать

RY>> Show/Hide тоже не подходило. ;)

AS> Hу так как? :-)

Я тебе исходник пришлю ;)

А если загадки любишь - то загадку покажу. ;)


* Origin: 1134 (2:5045/44.13)

Вот пришло с TwoCows

AB>>> Дело в этом или коммон диалог должен быть для них чисто

AB>>> английским?

RY>> Люди с платным сабмитом мучаются, а ты... ;)

AB> Я без платы терпеливо ждал почти 2 месяца, когда мою заявку

AB> рассмотрят. И потом - какой еще платный сабмит для фриварной

AB> программы?


Hе знаю, сколько помню - обычно shareware, да с аффилиатским линком, берут охотнее, чем фриваре. ;)


RY>> Кстати, Microsoft разрешает распространять свои компоненты,

RY>> только если у тебя есть легальная версия того, в чем оно входит.

RY>> Т.е. для VB5/6 у тебя должен быть легально приобретенный

RY>> дистрибутив. У тебя легальный?

AB> Очень легальный! Только я коробку где-то потерял.

Сила, брат, она не в коробке. Сила, брат, она в наклейке. ;)


* Origin: 1134 (2:5045/44.13)

ReadFile/WriteFile

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


Tue Jul 20 2004 21:42, Roman Yuakovlev wrote to All:

RY> LastError = GetLastError

Кроме всего прочего, вместо GetLastError лучше юзать Err.LastDllError, т.к. в
процессе вызова апишки значение LastError может и переписаться.

RY> Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long,

RY> lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long,

RY> lpNumberOfBytesWritten As Long, dwOverlapped As Long) As Long

Hадо: ByVal dwOverlapped As Long

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