Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Конвертирование и смена пути для веб-страниц


Автор: InfMag 19.9.2008, 11:43
В общем задача такая, делаю на основе компонента webBrowser просмотр страничек. Я получаю вот эти кодом путь до папки где лежит EXE и мой HTML документ:
Код

char full[_MAX_PATH];
_fullpath(full, NULL, _MAX_PATH);

Предварительно подключая: #include <stdlib.h>
Путь дается вида C:\folder\subfolder и мне нужно сделать его вида file:///C:/folder/subfolder/open.html и задать webBrowser1->Url, но никак не получается, ибо этот Url имеет какой-то странный тип и просто так не задается. Может кто поможет?

Автор: InfMag 19.9.2008, 14:06
Полвопроса закрыто:
Код

                _fullpath(full, NULL, _MAX_PATH);
                char* fullAddr = (char*) malloc(_MAX_PATH*sizeof(char));
                fullAddr = strcpy(fullAddr, "file:\\\\");
                fullAddr = strcat(fullAddr, full);
                fullAddr = strcat(fullAddr, "\\start.html");
                button1->Text = String(fullAddr).ToString();
                this->webBrowser1->Url = (gcnew System::Uri(String(fullAddr).ToString(), System::UriKind::Absolute));

Осталось только обратить символы \ в /

Автор: Alek86 19.9.2008, 14:23
если быстро - пробегись циклом по строке и замени

Автор: InfMag 19.9.2008, 14:39
Alek86, я конечно извиняюсь, но я тока сел за си можно сказать, давным-давно что-то такое пробовал, и отложил, а сейчас надо вот smile
В общем как пробежаться таким образом по циклу? У меня не получается:
Код

                for (int i=0; i<sizeof(fullAddr); i++)
                {
                    if (fullAddr[i]=="\\") fullAddr[i] = "/";
                }

Автор: mouse 19.9.2008, 14:54
Возможно этот вариант тебе подойдет (я заменил в "file:" и "start.html" "\\" на "/"):
Код

    char full[_MAX_PATH];
    _fullpath(full, NULL, _MAX_PATH);
    char* fullAddr = (char*) malloc(_MAX_PATH*sizeof(char));
    fullAddr = strcpy(fullAddr, "file:///");
    fullAddr = strcat(fullAddr, full);
    fullAddr = strcat(fullAddr, "/start.html");
    int iSize = strlen(fullAddr);
    for (int nIndex = 0; nIndex < iSize; nIndex++)
    {
        if (fullAddr[nIndex] == '\\')
        {
            fullAddr[nIndex] = '/';
        }
    }
    .....
    free(fullAddr);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)