Техническая поддержка :

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

для защиты Windows программ

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

Обсуждение программирования на Visual Basic в конференции ru.visual.basic


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

From: "Anton Dyuzhev"

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

Есть два имени файла:
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"

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 (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"

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 (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> методики, и Дмитрий тебя отговаривал только от первой :-)
В полученом коде не хочется использовать ничего страшне тега , при необходимости - 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

Привет, 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 - www.revengecrew.org (2:5054/29.33)


Re: Preloader

From: Alexander Asyabrik

Привет, 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)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты