Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 161
1

Как в C++ Builder 6 в строке символ \ "превратить" в \\

17.03.2012, 14:57. Показов 2285. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Столкнулся с одной проблемой: Мне надо копировать файл из той папки, где находится приложение
функция
C++
1
CopyFile
понимает только пути с двойным слешем, а все функции, которые возвращают путь до приложения, возвращают его с одним слешем.
Для того, чтоы узнать путь до приложения, я использую функцию
C++
1
ExtractFilePath(Application->ExeName);
Возвращаемое ей значение, мне надо перебрать и заменить один слеш двумя
Как это осуществить? Напишите пожалуйста код.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2012, 14:57
Ответы с готовыми решениями:

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

Как данные в строке превратить в заголовок (ADO.NET)
Есть некая таблица с данными (создавалась в ADO.NET): Можно ли данные из второго столбца...

Строка: Как удалить начальный символ в строке и добавить тот же символ (который удалили) в конец строки?
Как удалить начальный символ в строке и добавить тот же символ (который удалили) в конец строки? ...

Функция принимает блоки данных (символ1, символ 2, строка), в каждой строке заменять символ 1 на символ 2
функция принимает блоки данный(символ1, символ 2 , строка), в каждом строке заменять символ 1 на...

9
1123 / 794 / 101
Регистрация: 01.02.2011
Сообщений: 1,880
Записей в блоге: 1
17.03.2012, 15:35 2
Цитата Сообщение от Клод Посмотреть сообщение
функция
Код C++1 CopyFile
понимает только пути с двойным слешем,
везде с одним слешем
0
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 161
17.03.2012, 15:39  [ТС] 3
C++
1
2
CopyFile("C:\\prog.exe", "C:\\progs\\prog.exe", false); //так работает (потому что с двумя слешами)
CopyFile("C:\prog.exe", "C:\progs\prog.exe", false); //так не работает (потому что с одним слешем)
Я про это говорю. Я на C++ пишу.
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
17.03.2012, 15:59 4
C++
1
AnsiString WayToBase = ExtractFilePath(StringReplace(OptionsForm->Edit1->Text,"\"","""\\""", TReplaceFlags() << rfReplaceAll));
1
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 161
17.03.2012, 16:01  [ТС] 5
А вы кажется забыли Application->ExeName
или он там не нужен?)
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
17.03.2012, 16:09 6
В этом варианте он не нужен, здесь я из опендиалога записываю строку подключения в едит, а потом при следующем запуске программы, путь будет считываться с едита и подставлять по одному слешу

Добавлено через 1 минуту
Цитата Сообщение от Клод Посмотреть сообщение
А вы кажется забыли Application->ExeName
или он там не нужен?)
Если у тебя подход другой тогда можешь вписать Application->ExeName, но StringReplace подходит как никогда для добавления слеша
0
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 161
17.03.2012, 16:11  [ТС] 7
ТО есть если я хочу копировать файл из одной с приложением папки, используя ваш код, это будет выглядеть так:
C++
1
2
AnsiString WayToBase = ExtractFilePath(StringReplace(OptionsForm->Edit1->Text,"\"","""\\""", TReplaceFlags() << rfReplaceAll));
CopyFile("WayToBase.c_str()", "C:\\map\\map.txt", false);
0
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 161
20.03.2012, 18:32  [ТС] 8
Спс, помогло.
Вот код:
C++
1
2
AnsiString WayToBase = ExtractFilePath(StringReplace(Form1->Edit1->Text,"\"","""\\""", TReplaceFlags() << rfReplaceAll)) + "н1.txt";
CopyFile(WayToBase.c_str(), "C:\\map11.txt", false);
0
1123 / 794 / 101
Регистрация: 01.02.2011
Сообщений: 1,880
Записей в блоге: 1
20.03.2012, 20:24 9
Так не работало что ли?
C++
1
2
AnsiString WayToBase = ExtractFilePath(Form1->Edit1->Text) + "н1.txt";
CopyFile(WayToBase.c_str(), "C:\\map11.txt", false);
0
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 161
21.03.2012, 07:56  [ТС] 10
Нет таким способом не работает
потому что
C++
1
ExtractFilePath(Form1->Edit1->Text) + "н1.txt";
возвращает путь с одним слешем
а для ф-ции
C++
1
CopyFile()
нужен путь с двумя
0
21.03.2012, 07:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2012, 07:56
Помогаю со студенческими работами здесь

Превратить введённый пользователем текстовый символ операнда в сам операнд в программном коде
Есть ячейка, в которой указывается алгоритм, который будет использоваться для подсчёта выручки....

Выполнить замену всех символов в строке на первый отдельный символ, а всех пробелов в строке на второй отдельный символ.
Задание: 1. Ввести множество, запись или строку с помощью клавиатуры. 2. Вывести на экран...

Выполнить замену всех символов в строке на первый отдельный символ, а всех пробелов в строке на второй отдельный символ
Задание: 1. Ввести множество, запись или строку с помощью клавиатуры. 2. Вывести на экран...

Выполнить замену всех символов в строке на первый отдельный символ, а всех пробелов в строке на второй отдельный символ
Задана строка текста длинной не менее двадцати символов и заданы два отдельных символа.Выполнить...

Ввести строку и символ с клавиатуры. Проверить есть ли такой символ в строке
Совершенно не понимаю Assembler, помогите пожалуйста с заданием. Задание: Ввести строку и символ...

[MASM32] Заменить заданный символ в строке текста на указанный новый символ
Не могу сам сделать, так как мало изучал ассемблер, но очень надо( 4) Напишите диалоговую...

Строка: каждый символ строки S заменяются на следующий за ним символ в строке S...
Дано: в текстовом файле fin.txt находится текст на русском языке. С клавиатуры вводится число К....


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru