C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Проблемма с пробелами в имени файла
RusVV
Отправлено: 11.11.2003, 08:42


Не зарегистрирован







Проблема такая. Написал приладу, которая при определенном действии запускает строку типа
”C:\\winamp\\winanp.exe d:\\mp3\\kuku.mp3“. Причем адрес винампа прописан строго, а адрес песни взят из динамических данных. В случае с kuku.mp3 проблем не возникает. Однако существует куча файлов, в названии которых присутствуют пробелы. К примеру ‘D:\\mp3\\kuku nomer dva.mp3’. Ну а соответственная строка исполнения ”C:\\wiamp\\winanp.exe d:\\mp3\\kuku nomer dva .mp3“ воспринимается винампом как попытка запустить три разных файла (которые , естественно, не находятся).Как можно грамотно исправить такое дело ?
Roman
Отправлено: 11.11.2003, 09:31


Дежурный стрелочник

Группа: Участник
Сообщений: 78



Это не WinAmp виновник, а (по всей видимости) твоя функция запуска, она разбивает имя файла на само имя и параметры запуска. Попробуй для запуска использовать функцию ShellExecute...
xTrim
Отправлено: 11.11.2003, 09:31


Машинист паровоза

Группа: Участник
Сообщений: 208



Попробуй "C:\\wiamp\\winanp.exe \"d:\\mp3\\kuku nomer dva .mp3\""
Георгий
Отправлено: 11.11.2003, 09:54


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



а ты имя песни кавычками обрами:
winamp "d:\mp3\kuku nomer dva.mp3"
в программе это будет выглядеть так:
"winamp.exe \"d:\\mp3\\kuku nomer dva.mp3\""

надо учиться быстро печатать — пока написал, приконектился, отправил, тут уже и без меня разобрались

Отредактировано Георгий — 11/11/2003, 10:57
RusVV
Отправлено: 12.11.2003, 06:46


Не зарегистрирован







Не прокатывает.
Код такой:

char *comname;
strcpy(comname,"C:\\Program Files\\Winamp\\Winamp.exe ");
strcat(comname,(Form1->StringGrid1->Cells[2][tgc.Y]).c_str());
WinExec(comname,SW_RESTORE);

WinExec и ShellExe... работают практически одинаково (винэкс просто немного урезан).

А каким образом закатать символы "" в строку адреса вообще не понятно....Билдер ругается , что не понятен синтаксис
xTrim
Отправлено: 12.11.2003, 07:03


Машинист паровоза

Группа: Участник
Сообщений: 208



Мы не ищем легких путей, да? biggrin.gif

CODE

AnsiString comname = "C:\\Program Files\\Winamp\\Winamp.exe ";
comname += "\""+Form1->StringGrid1->Cells[2][tgc.Y])+"\"";
WinExec(comname.c_str(),SW_RESTORE);


вроде так. a = "\"" значит что в переменной а будет " и все.

Вернуться в Вопросы программирования в C++Builder