Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.13;
Скачать: CL | DM;

Вниз

ParamStr   Найти похожие ветки 

 
vvvaaa   (2003-12-30 19:42) [0]

Подскажите пожалста как сделать чтобы функция ParamStr выдовала полный путь к файлу? В хелпе написано "Use double quotes to wrap multiple words as one parameter (such as long file names containing spaces)" но как это реализовать я не понял.


 
jack128   (2003-12-30 20:04) [1]

имеется в виду, что например при запуске файла my.exe вот так
my.exe multiple word param считается что в программу передали 3 параметра (1- multiple, 2 - word, 3 - param). А вот если так my.exe "multiple word param", то 1 параметр (multiple word param)


 
vvvaaa   (2003-12-30 20:20) [2]

Не я имеею ввиду другое. При вызове ParamStr(1) она выдаёт
C:\PROGRA~1\BORLAND\DELPHI6\PROJECTS\ABCDEF~1.VVV
а должна выдавать
C:\PROGRAM FILES\BORLAND\DELPHI6\PROJECTS\ABCDEFGHJKL.VVV


 
хз   (2003-12-30 20:52) [3]

Просто имя в формате MS-DOS.

Для преобразования используй это:


Function RestoreLongName(Fn:String):String;
Function LookupLongName(Const FileName:String):String;
Var
Sr:TSearchRec;
Begin
If FindFirst(FileName,FaAnyFile,Sr)=0 Then
Result:=Sr.Name
Else
Result:=ExtractFileName(FileName);
SysUtils.FindClose(Sr);
End;
Function GetNextFN:String;
Var
I:Integer;
Begin
Result:="";
If Pos("\\",Fn)=1 Then
Begin
Result:="\\";
Fn:=Copy(Fn,3,Length(Fn)-2);
I:=Pos("\",Fn);
If I<>0 Then
Begin
Result:=Result+Copy(Fn,1,I);
Fn:=Copy(Fn,I+1,Length(Fn)-I);
End;
End;
I:=Pos("\",Fn);
If I<>0 Then
Begin
Result:=Result+Copy(Fn,1,I-1);
Fn:=Copy(Fn,I+1,Length(Fn)-I);
End
Else
Begin
Result:=Result+Fn;
Fn:="";
End;
End;
Var
Name:String;
Begin
Fn:=ExpandFileName(Fn);
Result:=GetNextFN;
Repeat
Name:=GetNextFN;
Result:=Result+"\"+LookupLongName(Result+"\"+Name);
Until Length(Fn)=0;
End;


 
vvvaaa   (2003-12-30 22:38) [4]

Спасибо работает. Хотя я так и не понял почему возвращается DOSовское имя, если ParamStr(0) возвращает нормальное(полное) имя и запрос идёт через Windows?


 
jack128   (2003-12-30 23:07) [5]


> Спасибо работает. Хотя я так и не понял почему возвращается
> DOSовское имя, если ParamStr(0) возвращает нормальное(полное)
> имя и запрос идёт через Windows?

Если глянишь в исходник ParamStr, то увидешь, что ParamStr(0) обрабатывается совершенно особым образом..



Страницы: 1 вся ветка

Текущий архив: 2004.01.13;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.008 c
6-37815
UNick
2003-11-14 16:14
2004.01.13
Как мне задать тему письма


1-37622
Perf
2003-12-27 16:52
2004.01.13
Картинки в TreeView


4-37991
Dunmer
2003-11-10 11:31
2004.01.13
Как оптимизировать Ресолв ДНС


7-37969
Shaman O Mega
2003-10-31 11:18
2004.01.13
Как уменьшить загрузку процессора


4-37979
DriveSoft
2003-11-09 17:08
2004.01.13
Вставка текста в IE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский