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

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

Командная строка... [D3, Win95/98]


Riko ©   (2002-05-11 17:13:00) 

Всем привет!
Знаю, что было не мало сказано на форуме о командной строке, но хотелось бы вновь поднять этот вопрос. Пожалуйста, объясните детально для начинающего программера следующее... Например, есть у меня функция:

Function WriteText;
var
F:TextFile
begin
{Здесь стандартные команды
записи в текстовый файл}
end;


Хотелось бы узнать, как данную функцию можно выполнить в командной строке да еще так, чтобы сама программа не запускалась, точнее ее форма не выводилась? Я видел команду ParamStrв файле справки, но как ей пользоваться?
Если не трудно, покажите на примере, я только с помощью их, инфы с Инета и учусь. Спасибо за внимание.


ZZ   (2002-05-11 18:19:00) [1]

Добавлю, что ParamStr не обязательно вызывать в DFM. Просто если надо не показывать форму, то не в самой же форме его вызывать.


Riko   (2002-05-11 18:18:00) [2]

Точно! Как-то сразу не вкурил.
Всем большое спасибо за помощь.


Val   (2002-05-11 18:14:00) [3]

да что угодно можно вызвать-вы же просто проверяете перед вызовом есть ли у вас нужный параметр при запуске .exe


Riko   (2002-05-11 17:59:00) [4]

Я знал, что вопрос глупый, но лучше знать точно, чем быть в неведении. Теперь вот еще что... Я понял, что это помещаеться в моем файле .DPR :

if ParamStr(1) ="/key"
then begin
WriteText;
Write("Text was written succesfully");
exit;
end;


А можно ли вызвать как-то вместо:
WriteText;
Write("Text was written succesfully");
exit;


...мою функцию из .PAS файла, она не маленькая, не хотелось бы увеличивать размеры программы.


ZZ   (2002-05-11 17:53:00) [5]

Патаму шта.. это прога для Windows, а не для DOS.
Если надо для DOS - пиши на паскале.


Riko   (2002-05-11 17:49:00) [6]

2ZZ © (11.05.02 17:45)

Если ты его хочешь запустить в DOS"е, то не получится никак!!!

Почему?


ZZ   (2002-05-11 17:45:00) [7]

:) Если есть винда, значит окно запустится :)
Если ты его хочешь запустить в DOS"е, то не получится никак!!!

А вообще -
if ParamStr(1) ="/key"
then begin
WriteText;
Write("Text was written succesfully");
exit;
end;
в файле проекта, а не формы !!!


Riko   (2002-05-11 17:41:00) [8]

2ALL:

Наверное, Вы все меня неправильно поняли.
У моей проги есть форма, множество других функцию.
Мне нужно сделать так, чтобы пользователь смог выполнить функцию WriteText; (возможно, я неправильно объясняю но...) в командной строке, набрав определенны ключ, как делают это утилиты командной строки.

Например:
МояПрога /ключ

Нужно это, если Винда грохнулась, а создать этот файл всеравно надо. Ведь, если пользователь вызовет прогу у которой есть форма, в этой ситуации она просто не запустится.


MBo   (2002-05-11 17:30:00) [9]

for i:=1 to ParamCount // так надо

эта программа выполнится, ничего не показывая, запишет параметры ком. строки


ZZ   (2002-05-11 17:29:00) [10]

ParamStr возвращает i-ый параметр командной строки.
Например, project1 start
ParamStr(0) = "project1"
ParamStr(1) = "start"

Чтобы формы небыло ее надо удалить из проекта и писать текст программы в dpr файле.

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


Val   (2002-05-11 17:26:00) [11]

>MBo © (11.05.02 17:24)
я так понял, автор хочет не показывать форму в зависимости от параметра?


Val   (2002-05-11 17:24:00) [12]

Я видел команду ParamStr в файле справки, но как ей пользоваться?
в справке к ней и пример существует


MBo   (2002-05-11 17:24:00) [13]

qq.dpr

program qq;
var f:textfile;
i:integer;
begin
assignfile(f,"qqq.txt");
rewrite(f);
for i:=0 to ParamCount-1 do
writeln(f,paramstr(i));
closefile(f);
end.


Наверх

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