![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Короткий путь DOS
Леонид © (2007-03-27 13:50:00)procedure TForm1.ToolButton13Click(Sender: TObject);
var fi:textfile;
s1,s2,L:string;
begin
If OpenDialog3.Execute Then
Begin
AssignFile(fi,Form1.d+'\Temp\File.txt');
s1:=(OpenDialog3.FileName{1});
s2:=(OpenDialog3.FileName{2});
ReWrite(fi);
WriteLn(fi,s1);
WriteLn(fi,s2);
CloseFile(fi);
End;
Но мне нужен короткий путь к фаулу, притом я написал функцию обрезки (12345678ываы.123 -> 123456~1.123), Но DOS не видет также пробелов и русского, дальнейшее усовершенствование процедуры долгое и бесполезное (на мой взгляд), т.к. есть стандартная функция GetShortPachName (OpenDialog3.FileName,L,bufff);
L:=pChar(Edit4.Text)+' <'+GetShortPachName(OpenDialog3.FileName,L,bufff)+ 'Temp\File.txt';
winexec(pChar(L),1);
Мне надо запустить файл ехе с параметрами записанными в файле File.txt, петь d:\exe <Путь в формате дос\File.txt, Tckb 'Win' программа не понимает
Не работает я Хелп, читал не помогло, подскажите как правельно?
Леонид (2007-03-27 18:42:00) [1]Не некатит, я уже все решил, просто неувидил или не доперевел хелп что GetShortPathName - выдает массив.
Asail (2007-03-27 18:33:00) [2]А если попробовать путь вместе с названием файла в двойные кавычки засунуть? Типа, "c:\Program Files\Microsoft Office\MyFile.txt".
Может, прокатит, хотя не уверен. :-(
Леонид (2007-03-27 14:16:00) [3]
> А из командной строки пробовал такой механизм?
> Ведь параметры должны быть в строке, а не в файле.
Пробовал все работает, если дос путь вводить.
> Elen ©
>
> А-а-а эта прога формирует файл с параметрами, которые потом
> будут в Дос-прогу через параметр передаваться?
Ага, уже месяц пишу обработчик входных и выходных данных. Программа внешняя и реализовать на Delphi не возможно, и исходников нет, Интерфейс создаю дружественный
Elen (2007-03-27 14:13:00) [4]
> GetShortPachName
И кстати пишется как GetShortPathName
Elen (2007-03-27 14:12:00) [5]
> L:=pChar(Edit4.Text)+' <'+GetShortPachName(OpenDialog3.FileName,
> L,bufff)+ 'Temp\File.txt';
GetShortPachName возвращает число, а не строку. Его нужно использовать типа такого :
procedure TForm1.FormCreate(Sender: TObject);
var p:array[0..32] of char; s:string;
begin
s:=ExtractFilePath (ParamStr(0));
caption:=inttostr(GetShortPathName(pchar(s), p,25));
caption:= caption+' '+p;
end;
Elen (2007-03-27 14:04:00) [6]
> Леонид (27.03.07 13:50)
А-а-а эта прога формирует файл с параметрами, которые потом будут в Дос-прогу через параметр передаваться?
Desdechado (2007-03-27 14:02:00) [7]Elen © (27.03.07 14:00) [1]
Явно внешняя DOS-программа, а это к ней запускалка пишется.
Desdechado (2007-03-27 14:01:00) [8]> Мне надо запустить файл ехе с параметрами записанными в файле File.txt
А из командной строки пробовал такой механизм?
Ведь параметры должны быть в строке, а не в файле.
Elen (2007-03-27 14:00:00) [9]
> Но DOS не видет также пробелов и русского
А ты что под ДОС пишешь? Ты думаеш твоя эта procedure TForm1.ToolButton13Click(Sender: TObject); под ДОСом работать будет?