Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > проблема с путем


Автор: Deft 25.5.2009, 09:33
проблема такая:
надо открыть файл в экселе допустим. путь имеет формат С:\Папка1\файл.xls
т.е. слешы одинарные. 
Код

 a=P.c_str(); //P это путь
 ShellExecute(Handle,"open","EXCEL",a,NULL,SW_MAXIMIZE);

если в названии папки будет пробел то файл не откроется а если пробелов не будет то все норм. В то же время если путь задать вручную (у меня путей много, поэтому перебираются в цикле) для проверки, и слешы поставить двойные то все откроетсядаже при наличии пробелов...
Так вот как мне это исправить? использовать вместо c_str() что-то другое? или это не она косячит?
проверять все пути и заменять в них слешы одинарные на двойные? (тогда как это делать? если написать "\" будет в этой строке ошибка полюбому. если '\' тоже, как символы то сравнивать?)
в общем подскажите как решить пожалуйста..

Автор: XPyCT 25.5.2009, 12:08
Глянь тут может поможет

http://forum.vingrad.ru/forum/topic-227616/kw-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA-bat-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0.html

Автор: Alca 25.5.2009, 12:16
Вместо этого:
Цитата

С:\Папка1\файл.xls

это:
Цитата

С:\\Папка1\\файл.xls


Добавлено @ 12:17
или так:
Цитата

С:/Папка1/файл.xls

Винда сама заменит слеши.

Автор: XPyCT 25.5.2009, 12:25
to Alca: Совершенно с вами согласен! smile  
Я это и имел в виду когда отправлял человека по сцылке

Автор: xvr 25.5.2009, 16:34
Если в названии файла есть пробелы, то это название нужно брать в двойные кавычки.
И не надо забывать, что если это все пишется как строка в тексте программы, то все кавычки и обратные слэши нужно предворять специальным знаком (сюрприз: этот знак - обратный слеш  smile )

Автор: Deft 26.5.2009, 05:21
Спасибо xvr, кавычки меня спасли!

насчет двойных слешей я и сам в курсе и это по моему видно из первого поста...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)