Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Короткий путь 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); под ДОСом работать будет?


Наверх

Титульная страница Поиск, карта сайта Написать письмо