Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.033 c
3-1167225881
RomanH
2006-12-27 16:24
2007.03.25
Набор данных возвращаемый XП


2-1172742458
Ega23
2007-03-01 12:47
2007.03.25
Поведение VarType


2-1172898188
boa
2007-03-03 08:03
2007.03.25
помогите начинающиму


6-1160204036
psa247
2006-10-07 10:53
2007.03.25
Ускорить работу WNetEnumResource


2-1172936846
LigthStone
2007-03-03 18:47
2007.03.25
Unicode




   Наверх