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

Вниз

Короткий путь DOS   Найти похожие ветки 

 
Леонид   (2007-03-27 13:50) [0]

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" программа не понимает
Не работает я Хелп, читал не помогло, подскажите как правельно?


 
Elen ©   (2007-03-27 14:00) [1]


>  Но DOS не видет также пробелов и русского

А ты что под ДОС пишешь? Ты думаеш твоя эта procedure TForm1.ToolButton13Click(Sender: TObject); под ДОСом работать будет?


 
Desdechado ©   (2007-03-27 14:01) [2]

> Мне надо запустить файл ехе с параметрами записанными в файле File.txt
А из командной строки пробовал такой механизм?
Ведь параметры должны быть в строке, а не в файле.


 
Desdechado ©   (2007-03-27 14:02) [3]

Elen ©   (27.03.07 14:00) [1]
Явно внешняя DOS-программа, а это к ней запускалка пишется.


 
Elen ©   (2007-03-27 14:04) [4]


> Леонид   (27.03.07 13:50)

А-а-а эта прога формирует файл с параметрами, которые потом будут в Дос-прогу через параметр передаваться?


 
Elen ©   (2007-03-27 14:12) [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:13) [6]


> GetShortPachName

И кстати пишется как GetShortPathName


 
Леонид   (2007-03-27 14:16) [7]


> А из командной строки пробовал такой механизм?
> Ведь параметры должны быть в строке, а не в файле.

Пробовал все работает, если дос путь вводить.

> Elen ©
>
> А-а-а эта прога формирует файл с параметрами, которые потом
> будут в Дос-прогу через параметр передаваться?

Ага, уже месяц пишу обработчик входных и выходных данных. Программа внешняя и реализовать на Delphi не возможно, и исходников нет, Интерфейс создаю дружественный


 
Asail   (2007-03-27 18:33) [8]

А если попробовать путь вместе с названием файла в двойные кавычки засунуть? Типа, "c:\Program Files\Microsoft Office\MyFile.txt".
Может, прокатит, хотя не уверен. :-(


 
Леонид   (2007-03-27 18:42) [9]

Не некатит, я уже все решил, просто неувидил или не доперевел хелп что GetShortPathName - выдает массив.



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

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

Наверх




Память: 0.49 MB
Время: 0.063 c
9-1147642028
3DMax
2006-05-15 01:27
2007.04.15
Кривые Безье


3-1169627283
Alex'
2007-01-24 11:28
2007.04.15
Передача параметра-массива в процедуру (Oracle 10g XE)


2-1174556130
student:)
2007-03-22 12:35
2007.04.15
VPN на delphi


2-1174413598
Troan_81
2007-03-20 20:59
2007.04.15
Время работы программы


15-1174320124
ferr
2007-03-19 19:02
2007.04.15
Монитор.