Войти

Показать полную графическую версию : [решено] как в адресстроке OpenDialog перевести "\" на "\\"


SGKorotkow
28-10-2010, 11:01
всем добрый день!
ПОМОГИТЕ решить одну проблему!
перелопатил кучу форумов, но ничего не нашёл!
в программе из компоненты OpenDialog заполняются поля объектов Edit и ListBox. затем, пути прописанные в этих объектах, используются для открытия соответствующих файлов.
ПРОБЛЕМА в том, что OpenDialog передаёт пути с одним "\", например: "C:\Documents and Settings\programmer\Рабочий стол.....". и естественно открыть файл по такому пути в с++ builder нельзя!
КАК автоматически проставить двойной слеш "\\"???
пытался простым перебором строки добавить ещё один слеш к уже существующему, но поскольку единичный "\" в строке является служебным символом, то при переборе символов строки компилятор видит "C:Documents and Settings?programmer?.... и все функции по поиску вхождения "\" не работают!(

Подскажите как быть? работа стоит из за такой ерунды(

Drongo
28-10-2010, 11:49
SGKorotkow, Покажите ваш код.

Попробуйте присвоить значение(путь) в переменную и работать дальше с переменной.

SGKorotkow
28-10-2010, 12:04
Честно признаюсь не ожидал, но проблема разрешилась!
дествительно, присвоив значение переменной я получил пути с "\\"
Огромное спасибо Drongo!

El Scorpio
29-10-2010, 09:44
ПРОБЛЕМА в том, что OpenDialog передаёт пути с одним "\", например: "C:\Documents and Settings\programmer\Рабочий стол.....". и естественно открыть файл по такому пути в с++ builder нельзя! »
"Двойной" символ "\\" - это специальная форма записи, позволяющая изобразить одинарный символ '\' в исходном коде программы и отладчике компилятора.
Например
const string *Path = "c:\\boot.ini";
В этом символьном массиве третий элемент будет в окне отладчика отображаться символом '\\', а в окне программы и при выводе на печать - одинарным слэшем.
Просто сам по себе "\" в коде программы используется для специальных символов, посему текстовый слэш в коде программы отображается двойным ("слэш слэша").
Примеры спецсимволов:
'\0' - символ с нулевым кодом (текстовый ноль отображается символом с кодом 48)
'\r' и '\n' - символы перевода строки
'\t' - символ табуляции

Так что не заморачивайся




© OSzone.net 2001-2012