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

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

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

Visual Basic 6.0 - преобразовать абсолютный путь в относительный


преобразовать абсолютный путь в относительный

From: "Anton Dyuzhev" <duzhev [@] eastmail.com>


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

Есть два имени файла:
c:\dir1\dir2\dir3\file1.txt
c:\dir1\dir4\dir4\file2.txt

Существует ли в VB6 функция, в которую передаются два абсолютных пути
(т.е. полные пути с названием диска), и на выходе выдает _относительный_
путь одного файла "относительно" другого ?

Т.е. path1=AbsToRelative (path1, path2).
В результате path1="..\..\dir2\dir3.file1.txt"


С уважением,
Александр Дюжев

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

преобразовать абсолютный путь в относительный

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


Sun Apr 04 2004 14:03, Anton Dyuzhev wrote to All:

AD> Существует ли в VB6 функция, в которую передаются два абсолютных пути

AD> (т.е. полные пути с названием диска), и на выходе выдает _относительный_

AD> путь одного файла "относительно" другого ?


Function BindPath(Path As String, Base As String) As String
Dim i As Integer, j As Integer, Result As String
i = 1: j = 0
While Mid$(Path, i, 1) = Mid$(Base, i, 1)
If Mid$(Path, i, 1) = "\" Then j = i
i = i + 1: Wend
If j = 0 Then
BindPath = Path 'different drives
Exit Function
End If
j = j + 1: i = j
While j < Len(Base)
If Mid$(Base, j, 1) = "\" Then Result = Result & "..\"
j = j + 1: Wend
Result = Result & Mid$(Path, i)
BindPath = Result
End Function

2DK: В FAQ?

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

Preloader

H!, _[All]_!
Как сделать сабж пеpед до полной загpузки фоpмы? Запускаю пpогу, фоpма появляется чеpез ~3-5 секунд на P533MHz. В Form_Load заполняются много стpок для ComboBox-ов.

g'bye and g'luck, _[All]_!
* Origin: Down/Upload Soft - [SVALKA.TK] (2:5054/29.33)

Preloader

From: "Serge Chervjakov" <serg [@] enseza.elcom.ru>


Sun Apr 04 2004 17:27, Alexander Abramencov wrote to All:


AA> Как сделать сабж пеpед до полной загpузки фоpмы? Запускаю пpогу, фоpма

AA> появляется чеpез ~3-5 секунд на P533MHz. В Form_Load заполняются много

AA> стpок для ComboBox-ов.


использовать form_activate я так полагаю...

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

обработка метода post

AS> InStr(Data, " POST ") Then

AS> Shell = (выцепить имя файла из строки запроса)

файл буде один, ему не надо еще файлы.

AS> Data = (выцепить сами данные)

в программе уже есть обработчик данных POST/GET, и программа уже написана.


AS> Ещё Shell переопределить из константы в переменную, а Start убрать из

AS> Telnet_ConnectionRequest.

AS> И ещё, в процедуре tmrRedirect_Timer обрамлять пришедшие от ехе данные

AS> тем, чем положено обрамлять ответ.

Hадо будет скачать этот пример и самому посмотреть. ;)


RY>> Мне нужно решение, которое:

RY>> 1. Понимает вопрос от браузера

RY>> 2. Выдает информацию исключительно в формате .html в браузер.

AS> Hу так это от твоего скрипта зависит, в каком формате он будет

AS> выдавать информацию :-) Похоже, ты путаешь HTML и HTTP.

Hет, не путаю. Hо согласись, что для передачи информации из c:\cgi.exe в c:\iexplore.exe использовать http сервер - немного идиотизьм ;)

В ИДЕАЛЬHОМ ВАРИАHТЕ: мне нужно, чтобы вообще никто не знал ни про какие HTTP ;)


RY>> Hу не знаю, я с сайта статистику внимательно снимал, по крайней

RY>> мере на конец 2002 года и начало 2003 при 100-200 уникальных

RY>> юзеров в день получалось между 60 и 70% для IE 5.0 5.5 6.0 и

RY>> более 10% оперы, а также куча разны других строк реферера. К тому

RY>> же не факт, что основным обработчиком .HTML-и является IE.

AS> Может, у твоего сайта аудитория специфическая :-)

Мини-Игрульки для Windows


AS> Hа (абстрактном) сайте плугинов к Опере, скорее всего, у 70%

AS> посетителей - Опера, а на windowsupdate.microsoft.com - у всех сплошь

AS> ИЕ. Я сам с откровенным недоверием отношусь к этим "исследованиям":

AS> результат очень уж сильно зависит от того, что и как исследовать. Hо

AS> то, что у абсолютного большинства ИЕ - бесспорно.

Hо это не 100% ;)


RY>>>> Я не вижу другого метода взаимодействия.

AS>>> А чем COM плох?

RY>> ? А чем это может мне помочь?

AS> Да пресловутым внедрением осха на страницу либо созданием ActiveX DLL

AS> и работой с ним из скрипта. Это, заметь, две совершенно разные

AS> методики, и Дмитрий тебя отговаривал только от первой :-)

В полученом коде не хочется использовать ничего страшне тега <table>, при необходимости - js. Exe-приложение должно снимать с клиента-браузера много забот... ;)



* Origin: 1134 (2:5045/44.13)

преобразовать абсолютный путь в относительный

AS> Function BindPath(Path As String, Base As String) As String

AS> Dim i As Integer, j As Integer, Result As String

AS> i = 1: j = 0

AS> While Mid$(Path, i, 1) = Mid$(Base, i, 1)

AS> If Mid$(Path, i, 1) = "\" Then j = i

AS> i = i + 1: Wend

AS> If j = 0 Then

AS> BindPath = Path 'different drives

AS> Exit Function

AS> End If

AS> j = j + 1: i = j

AS> While j < Len(Base)

AS> If Mid$(Base, j, 1) = "\" Then Result = Result & "..\"

AS> j = j + 1: Wend

AS> Result = Result & Mid$(Path, i)

AS> BindPath = Result

AS> End Function

Генератор встроенных функций? :)


AS> 2DK: В FAQ?

Хм. Разве кому-то в голову нужность подобного придет? :)


* Origin: 1134 (2:5045/44.13)

Preloader

AA> Как сделать сабж пеpед до полной загpузки фоpмы? Запускаю пpогу,

AA> фоpма появляется чеpез ~3-5 секунд на P533MHz. В Form_Load

AA> заполняются много стpок для ComboBox-ов.

А что это?

ps. Можешь сплэшскрин с непотребными или еще какими картинками показывать.

* Origin: 1134 (2:5045/44.13)

Re: Preloader

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


Привет, Alexander.

Вы, было дело, писали 4 апреля 2004 г., 14:27:


AA> Как сделать сабж пеpед до полной загpузки фоpмы? Запускаю пpогу, фоpма

AA> появляется чеpез ~3-5 секунд на P533MHz. В Form_Load заполняются много стpок

AA> для ComboBox-ов.


Классически: показать форму еще до того, как начнутся длительные операции

Private Sub Form_Load()
' Тут что-нибудь быстрое и нужное для правильного отображения формы
' например, ресайзинг, надписи на форме и кнопках и тп

Me.Show
DoEvents

' Hеплохо еще и сплешскрин с прогрессом или хотя с "Пачакайте троху:)"
' Hу а теперь, то, что занимает целых 5 секунд(!).
' Кстати, может код очень уж там неоптимальный?
' Чего так долго?


--
С уважением, Alexander
4:27:17 PM
* Origin: Talk.Mail.Ru (2:5020/400)

Preloader

H!, _[Alexander]_!
AA> Классически: показать фоpму еще до того, как начнутся длительные опеpации

Фоpма-то главная.
AA> ' Чего так долго?

Сказал же. Дофига стpок запоняются в ComboBox-ы.
Combo1.AddItem="500 стpок"


g'bye and g'luck, _[Alexander]_!
* Origin: S2k - http://www.revengecrew.org (2:5054/29.33)

Re: Preloader

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


Привет, Alexander.

Вы, было дело, писали 4 апреля 2004 г., 18:49:


AA>> ' Чего так долго?

AA> Сказал же. Дофига стpок запоняются в ComboBox-ы.

AA> Combo1.AddItem="500 стpок"


Это-то много? Мелочь пузатая, если с подходом.

Во-первых при заполнении комбобокса сделай его невидимым
Во-вторых непосредственно перед заполнением используй
SendMessage c CB_INITSTORAGE = &H0161.

SendMessage(
(HWND) hWnd, // handle to destination window
CB_INITSTORAGE, // message to send
(WPARAM) wParam, // number of items to add
(LPARAM) lParam // memory to allocate
);

lParam придется рассчитать хотя бы приблизительно, лучше округлить в
большую сторону.

Скорость будет такая, что проблема задержки отпадет сама собой.

--
С уважением, Alexander
11:06:38 PM
* Origin: Talk.Mail.Ru (2:5020/400)