Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.25;
Скачать: CL | DM;

Вниз

Вопрос по бэкслэшам в СИ++   Найти похожие ветки 

 
Fus1on   (2007-02-28 08:31) [0]

мне нужно функции передать путь.
получаю путь так:

path = ExtractFilePath (Application.ExeName) + filename;

path становится равен: "d:\dev\test.txt"

но, "\d", "\t" он пытается прочитать как параметр, соответственно функция получает: "d:evest.txt"

я думаю исправить эту проблему путем добавления дабл слешей в стрингу, но мало ли существует какой-то ньюанс по этому поводу, что бы не мучаться..

подскажите пож.


 
TUser ©   (2007-02-28 10:03) [1]

Обычно решается даблслешем, если это билдер, то там должен быть StringReplace.


 
DrPass ©   (2007-02-28 11:03) [2]


> я думаю исправить эту проблему путем добавления дабл слешей
> в стрингу, но мало ли существует какой-то ньюанс по этому
> поводу, что бы не мучаться..

Правильно думаешь. Добавляй. Так или иначе, мучиться ты будешь недолго


 
iZEN ©   (2007-02-28 20:28) [3]

"d:\\dev\\test.txt"


 
Celades ©   (2007-02-28 22:13) [4]


> я думаю исправить эту проблему путем добавления дабл слешей
> в стрингу

это не слеш, это бекслеш. А вот если их заменить действительно на слеш, то получится "d:/dev/test.txt" - и это уже вполне нормально интерпретируется и Windows и *nix


 
homm ©   (2007-02-28 23:05) [5]

> то получится "d:/dev/test.txt" - и это уже вполне нормально
> интерпретируется и Windows и *nix
Шутник однако? :)


 
palva ©   (2007-02-28 23:15) [6]

>> и это уже вполне нормально интерпретируется
> Шутник однако? :)

Нормально интерпретируется многими функциями ввода-вывода, например, fopen. Если автор сознается, к какой функции он обращается, то можно будет сказать точнее.


 
palva ©   (2007-02-28 23:24) [7]

Почитал вопрос внимательнее. Очень странно, что строка при передаче в функцию интерпретируется неправильно. В строке стоят одиночные бэкслэши. Так и должно быть. При записи в программе эта строка и в самом деле должна записываться с двойными бэкслэшами, но в строке все равно окажутся одиночные бэкслэши. Так что в строку в оперативной памяти добавлять ничего не нужно. Другое дело, что сама функция может требовать двойные бэкслэши. Но тогда надо спросить, какая у автора функция.


 
Ketmar ©   (2007-02-28 23:25) [8]

> palva ©   (28.02.07 23:15) [6]
как минимум в 2k+ слэши отлично понимает CreateFileA(). поэтому пофигу, к чему обращаться.


 
palva ©   (2007-02-28 23:34) [9]

Скорее всего автор что-то напутал. Так что он вряд ли здесь появится с объяснениями и извинениями.


 
Ketmar ©   (2007-02-28 23:50) [10]

автор попутал профессию. или увлечение. на улице зима, между прочим, снег не метёт никто.


 
homm ©   (2007-03-01 07:07) [11]

> Нормально интерпретируется многими функциями ввода-вывода,
> например, fopen.
И как же в *nix системах интерпретируется диск d: ??? :)


 
Celades ©   (2007-03-01 10:03) [12]


> И как же в *nix системах интерпретируется диск d: ??? :)

дело не в диске, а в слеше.


 
Ketmar ©   (2007-03-01 11:15) [13]

> homm ©   (01.03.07 07:07) [11]
ну и кто тебе мешает создать каталог с именем "d:"?



Страницы: 1 вся ветка

Текущий архив: 2007.03.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.057 c
15-1172575642
Vlad Oshin
2007-02-27 14:27
2007.03.25
Сломал флешку, пополам, не читается. Прочитать как-то реально?


2-1172733688
Riply
2007-03-01 10:21
2007.03.25
Индекс объекта, возвращаемого MsgWaitForMultipleObjects


15-1172869910
Nic
2007-03-03 00:11
2007.03.25
Организация времени


2-1173010622
Roman_S
2007-03-04 15:17
2007.03.25
Как учесть клавишу "BACKSPACE"?


2-1173083209
sergeyst
2007-03-05 11:26
2007.03.25
SQL-запрос