Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/68: Рейтинг темы: голосов - 68, средняя оценка - 4.72
37 / 37 / 5
Регистрация: 12.02.2010
Сообщений: 239

Путь к файлу

21.07.2010, 15:11. Показов 13724. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые программисты. Вот есть один вопрос. Когда пишешь путь к файлу нужно использовать двойной слэш
C++
1
C:\\text.txt
Собственно сам вопрос, когда пользователь вводит путь с одним слэшем, как мне сделать что б один слэш, заменялся на два слэша, допустим в Edit'e???
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.07.2010, 15:11
Ответы с готовыми решениями:

Путь к файлу.
Здравствуйте. Проблема следующая. Вот у меня, допустим происходит загрузка с...

Путь к файлу
как указать путь к файлу который находится в папке рядом с exe-файлом программы?

Динамический путь к файлу
Приветствую! Вопрос таков: Как задать такой путь к файлу чтобы менялись названия папок и файла? То есть 1 это меняется название папки, а...

11
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
21.07.2010, 15:40
Демонстрационный пример (см. вложение).
Вложения
Тип файла: rar Project1.rar (25.6 Кб, 195 просмотров)
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
21.07.2010, 15:43
Игорь98, можно так:
C++
1
2
String s=char(92);
Edit1->Text=StringReplace(Edit1->Text,s,s+s,TReplaceFlags()<<rfReplaceAll);
или так:
C++
1
Edit1->Text=StringReplace(Edit1->Text,String(char(92)),String(char(92))+String(char(92)),TReplaceFlags()<<rfReplaceAll);
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
21.07.2010, 16:12
Лучший ответ Сообщение было отмечено как решение

Решение

Два слеша - это последствия того, что НА ЯЗЫКЕ СИ\СИ++ внутри кавычек нужно экранировать слэш. При записи в языке (в исходнике)

C
1
char a[] = "C:\\a.txt";
в реальном коде будет только один обратный слэш (компилятор вместо двух слэшей построит один). Когда строку вводит пользователь, он это делает в ПРОЦЕССЕ РАБОТЫ программы (а не в исходниках), а потому операции для работы с потоками ввода или чтения данных из полей ввода отработают как надо: один слэш оставят одним слэшом.

Все дополнительные телодвижения в виде второго слэша нужны ТОЛЬКО при написании исходника программы
3
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
21.07.2010, 16:13
Цитата Сообщение от Игорь98 Посмотреть сообщение
Здравствуйте уважаемые программисты. Вот есть один вопрос. Когда пишешь путь к файлу нужно использовать двойной слэш
Слеш является специальным символом, поэтому если в строковом литереле должен присутствовать слеш нужно поставить два слеша. Т.е. последовательность из 2 слешей в литереле превращается в один слеш.
Цитата Сообщение от Игорь98 Посмотреть сообщение
Собственно сам вопрос, когда пользователь вводит путь с одним слэшем, как мне сделать что б один слэш, заменялся на два слэша, допустим в Edit'e???
Пользователь и должен вводит путь с одним слешем. Ничего заменять не нужно.
1
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
26.08.2011, 12:39
А если я получаю имя файла из
C++
1
String bd=OpenDialog1->FileName
то в переменной храниться имя с одним слешем. И теперь когда мне нужно работать с этим файлом мне в его имени нужно позаменять все одинарные слеши на двойные. Как это сделать?
Я делаю так
C++
1
bd=StringReplace(bd_name, "\" ,"\\",TReplaceFlags()<<rfReplaceAll);
получаю ошибку! Что я делаю не так?
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
26.08.2011, 13:53
to, зачем заменять? Получили путь к файлу ну и работайте с ним дальше.
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
26.08.2011, 14:54
NiTan, я работаю с компонентом ADOConnection и если я ему в СonnectionString подставлю имя полученое сразу от OpenDialog, то выскакивает ошибка подлинности, а если подставляю имя с двумя слешами, то все норм конектится.
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
26.08.2011, 15:56
to, тогда вот так:
C++
1
2
String bd=OpenDialog1->FileName;
bd=StringReplace(bd,String(char(92)),String(char(92))+String(char(92)),TReplaceFlags()<<rfReplaceAll);
Добавлено через 1 минуту
Или так:
C++
1
2
String bd=OpenDialog1->FileName;
bd=StringReplace(bd,"\\","\\\\",TReplaceFlags()<<rfReplaceAll);
2
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
26.08.2011, 15:57
Как это понимать? а где мне указывать мои слеши? можешь на моем примере показать?
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
26.08.2011, 15:58
NiTan,
Цитата Сообщение от NiTan Посмотреть сообщение
String bd=OpenDialog1->FileName;
bd=StringReplace(bd,"\\","\\\\",TReplace Flags()<<rfReplaceAll);

Я тоже так собирался сказать но не успел...
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
26.08.2011, 16:13
Всем спасибо разобрался!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.08.2011, 16:13
Помогаю со студенческими работами здесь

Путь к исполняемому файлу
Здравствуйте, вообщем проблема в следующем, необходимо указать путь к исполяемому файлу, т.е. я запускаю свой exe-шник(построенный в...

Путь к файлу на диске
Здравствуйте подскажите как правильно написать путь к thml файлу. Раньше писал етот проект на builder 6 но пришлось перейти на Rad Studio...

функция if и путь к файлу
помоги как написать если путь к файлу не существует то вывести сообщение иначае открыть форму! пробывал так но не получаеться ...

полный путь к файлу
использую DirectoryListBox1 и FileListBox1 FileListBox1 вводит выбраный файл в edit1 но как сделать чтобы путь он полность путь выводил...

Ошибочный путь к файлу
Имеется форма. На ней OpenDialog, кнопка &quot;Обзор&quot;, активирующая выбор файла(адрес файла кидается в TextEdit) и кнопка &quot;Добавить&quot;,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru