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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2011, 01:11   #1
Renat21
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 12
По умолчанию ParamStr

Код:
buf:=ParamStr(ParamCount); 

if ParamCount>0 then 
Memo1.Lines.LoadFromFile(buf)
Программа запускается и нормально работает, но если в имени файла есть пробелы, то он его не находит Почему?

Последний раз редактировалось Stilet; 05.02.2011 в 15:48.
Renat21 вне форума Ответить с цитированием
Старый 05.02.2011, 01:40   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Пример:

Цитата:
App.exe /S C:\Program Files\My Application\MyApp.exe /Load
Сколько, по-твоему, здесь параметров?

Цитата:
App.exe /S "C:\Program Files\My Application\MyApp.exe" /Load
А здесь?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 05.02.2011, 09:18   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Если есть пробелы, то надо путь заключать в кавычки
FaTaL вне форума Ответить с цитированием
Старый 05.02.2011, 19:58   #4
Renat21
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 12
По умолчанию

Да, я соглашусь с вами, но как это реализовать программно в Delphi?
Renat21 вне форума Ответить с цитированием
Старый 05.02.2011, 20:07   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

прописать в реестр её правильно надо.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.02.2011, 20:11   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А что реализовать то? Не могу с уверенность сказать передаёт ли ParamStr обрамляющие кавычки, если и передает - то убрать их, а не передает - то и вопроса нет.
Цитата:
прописать в реестр её правильно надо.
- ее это что?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 05.02.2011 в 20:13.
Аватар вне форума Ответить с цитированием
Старый 05.02.2011, 20:14   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но как это реализовать программно в Delphi?
Что реализовать? Тебе нужно просто вызвать свою же программу передав ей параметры так как GunSmoker указал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.02.2011, 20:19   #8
Renat21
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 12
По умолчанию

Я понял как это делается, спасибо Вам всем!!!
Вот как должен выглядеть код программы, чтобы не было пробелов в параметре командной строки:

Код:
buf:='';
for i:=1 to ParamCount do
  buf:=buf+ParamStr(i)+Chr(32);
if ParamCount>0 then
 Memo1.Lines.LoadFromFile(buf);

Последний раз редактировалось Stilet; 05.02.2011 в 20:25.
Renat21 вне форума Ответить с цитированием
Старый 05.02.2011, 20:26   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
чтобы не было пробелов в параметре командной строки:
Цитата:
buf:=buf+ParamStr(i)+Chr(32);
Ух ты!...
Смелое решение... Оно действительно работает?
I'm learning to live...

Последний раз редактировалось Stilet; 05.02.2011 в 20:29.
Stilet вне форума Ответить с цитированием
Старый 05.02.2011, 20:29   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ни чего вы не поняли. Это методически не правильный подход. Да у вас это сработает. А если несколько параметров передать? Тогда слабо так их обработать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
paramstr ZhekON Общие вопросы Delphi 11 09.06.2007 13:57