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)