Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2011, 07:59   #1
royun
Пользователь
 
Регистрация: 20.05.2011
Сообщений: 67
По умолчанию Пробелы в пути к файлу

Добрый день уважаемые форумчане.

У меня есть *.ехе - шник, который обрабатывает файл находящийся в некоторой директории. Если в пути к файлу имеется пробел, например:

c:\Documents and Settings\Admin\Мои документы\Выбор.doc

то выдает ошибку, "не найдена папка "Documents"", а если в пути к файлу отсутствуют пробелы, например:

c:\000\Delphi\Выбор.doc

то все нормально отрабатывает.

Вот код, который я использую:

Код:
ShellExecute (Handle, nil, 'bin2dbf.exe', PChar(' /3 /g- /r- '+ OpenDialog2.FileName 
+' c:\DeBoraF\DBF\'+ExtractFileName(OpenDialog2.FileName)+'.dbf'), 'c:\DeBoraF\', SW_SHOW);

Последний раз редактировалось Stilet; 27.10.2011 в 08:17.
royun вне форума Ответить с цитированием
Старый 27.10.2011, 08:07   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

не знаю, если поможет...
Попробуйте заключать путь к файлу в двойные кавычки ", если там содержатся пробелы.
Вадим Мошев вне форума Ответить с цитированием
Старый 27.10.2011, 08:07   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

берите имя файла в двойные кавычки:
Код:
ShellExecute (Handle, nil, 'bin2dbf.exe', 
PChar(' /3 /g- /r- "'+ OpenDialog2.FileName +'" "c:\DeBoraF\DBF\'
+ExtractFileName(OpenDialog2.FileName)+'.dbf"'), 'c:\DeBoraF\', 
SW_SHOW);

Последний раз редактировалось Stilet; 27.10.2011 в 08:18.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.10.2011, 10:28   #4
royun
Пользователь
 
Регистрация: 20.05.2011
Сообщений: 67
По умолчанию

Спасибо, что направили в правильную сторону, но правильнее было:

Код:
ShellExecute (Handle, nil, 'bin2dbf.exe', PChar(' /5 /g- /r- ' +'"'+ OpenDialog2.FileName +'"'+ ' c:\DeBoraF\DBF\'+ExtractFileName(OpenDialog2.FileName)+'.dbf'), 
'c:\DeBoraF\', SW_SHOW);
Тема закрыта.

Последний раз редактировалось mihali4; 27.10.2011 в 11:17.
royun вне форума Ответить с цитированием
Старый 27.10.2011, 11:19   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
но правильнее было:
вы ошибаетесь!

для первых двойных кавычек: то, что вы их добавили к строке отдельно - это абсолютно индифферентно, как Вам удобнее.
а вот то, что Вы убрали из моего примера двойные кавычки для результирующего имени - это чревато проблемами. Если "вдруг" имя исходного файла будет содержать пробелы - то выходное имя будет совсем не такое, как ожидает программист!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.10.2011, 05:02   #6
royun
Пользователь
 
Регистрация: 20.05.2011
Сообщений: 67
По умолчанию

Действительно. Вы правы. Еще раз спасибо.
royun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение пути к файлу процесса Stipower Общие вопросы Delphi 4 08.05.2019 15:22
VB. Определение пути в файлу KillJoy Помощь студентам 2 08.10.2010 20:51
Получение пути к файлу из ListBox artemavd Общие вопросы Delphi 8 07.08.2010 15:27
изменение пути к файлу Обыватель Microsoft Office Excel 2 30.09.2008 13:16
Определение пути к файлу Pinya Общие вопросы Delphi 1 07.08.2008 12:22