Вниз
Скачать: 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.042 c
2-1172665355
Urfin Juse
2007-02-28 15:22
2007.03.25
"Залипание" окон


4-1162976299
-=mih@=-
2006-11-08 11:58
2007.03.25
Нормальная регистрация файла!!!


2-1173040725
gosha73
2007-03-04 23:38
2007.03.25
WideString - > UnicodeString


6-1160139325
urdolphin
2006-10-06 16:55
2007.03.25
Утечка памяти TServerSocket и TClientSocket


1-1170368901
FAskerQ
2007-02-02 01:28
2007.03.25
Как узнать время создания процесса?




   Наверх