Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
ВнизПочему ParamStr() теряет в имени пробелы? Найти похожие ветки
← →
oleg_sys (2003-05-09 20:19) [0]Такая проблема: мне нужно знать имя файла, из которого было запущено приложение.
for i:=1 to ParamCount do
begin
str:=str+ParamStr(i);
end;
Но в результате этого получается не "C:\Мои документы\файл.txt" а "C:\Моидокументы\файл.txt".
Почему оно теряет пробел и как мне узнать нормальный путь?
← →
pavel_k (2003-05-09 21:33) [1]Добавить пробел:)
str:=str+" "
← →
pavel_k (2003-05-09 21:36) [2]Это надо написать в цикле ниже написанного тобой...
← →
default (2003-05-09 21:56) [3]"мне нужно знать имя файла, из которого было запущено приложение."
ExtractFileName(Application.ExeName)
← →
Юрий Зотов (2003-05-10 12:38) [4]> oleg_sys © (09.05.03 20:19)
> Почему ParamStr() теряет в имени пробелы?
Нет, она ничего не теряет. Просто параметры командной строки разделяются как раз пробелами, поэтому один параметр с пробелом ParamStr воспринимает, как два разных параметра. И совершенно правильно делает.
В результате у Вас получается:
ParamStr(1)= C:\Мои
ParamStr(2)= документы\файл.txt
В цикле Вы склеиваете обе этих строки в одну - вот потому пробел и исчезает. А чтобы получить правильный результат, заключайте параметр с пробелами в двойные кавычки - тогда ParamStr воспримет его именно как ОДИН параметр и не будет разбивать его на несколько.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c