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

Путь к файлу

21.07.2010, 15:11. Показов 13650. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru