Главная страница
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.49 MB
Время: 0.03 c
2-1172752503
Ezorcist
2007-03-01 15:35
2007.03.25
Вызвать событие наследника из родителя?


15-1172673922
partizan
2007-02-28 17:45
2007.03.25
Компонента для работы с ФТП


15-1172816170
Чапаев
2007-03-02 09:16
2007.03.25
Гы


2-1173073117
mss
2007-03-05 08:38
2007.03.25
Как работать run time компонентами?


1-1170365613
Ольчик
2007-02-02 00:33
2007.03.25
Проблема с файлами DEL1.MB,DEL2.MB...