Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 153
от 04.06.2003, 02:50

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 272
Отправлено ответов: 946
Активность: 347.7 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

vitya
Статус: Профессиональный
Общий рейтинг: 108.12
[Подробней >>]
Bill
Статус: Доверительный
Общий рейтинг: 181.81
[Подробней >>]
Pin
Статус: Опытный
Общий рейтинг: 121.2
URL: My HOMEPAGE
[Подробней >>]
 
BOLT
Статус: Профессиональный
Общий рейтинг: 171.36
URL: В помощь начинающему программитсу Assembler, C/C++
[Подробней >>]
Дмитрий
Статус: Опытный
Общий рейтинг: 140.13
[Подробней >>]
Tigran K. Kalaidjian
Статус: Опытный
Общий рейтинг: 117.04
URL: Методы оптимизации работы ПК
[Подробней >>]
 
DoS@
Статус: Доверительный
Общий рейтинг: 129.72
[Подробней >>]
[MozgC]
Статус: Профессиональный
Общий рейтинг: 171.29
[Подробней >>]
Tancho
Статус: Опытный
Общий рейтинг: 152.47
[Подробней >>]
 
Shurik
Статус: Доверительный
Общий рейтинг: 118.47
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 118.98
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 260. Здравствуйте Эксперты! Подскажите как мне из моей программы запустить другую программы с параметром... (ответов: 9)
Вопрос № 261. Зравствуйте уважаемые Эксперты! Не могли бы вы посмотреть почему не происходит присваивание q^.info^... (ответов: 6)

Вопросов: 2, ответов: 15


 Вопрос № 260

Здравствуйте Эксперты!
Подскажите как мне из моей программы запустить
другую программы с параметром.



Вопрос отправлен: 31.05.2003, 08:32
Отправитель: Ilu

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Здравствуйте, Ilu!

это под дос
SwapVectors;
Exec(ProgramName, CmdLine);
SwapVectors;
под виндовс
ShellExecute, ShellExecuteEx, CreateProcess, WinExec

Ответ отправлен: 31.05.2003, 12:39
Отправитель: vitya


Отвечает Bill

Здравствуйте, Ilu!
Стандартная помощь: Exec (процедура) (модуль Dos)
Выполняет заданную программу с заданной командной строкой.
Объявление:
Procedure Exec(Path, CmdLine : String);


Приложение:

Ответ отправлен: 31.05.2003, 12:39
Отправитель: Bill


Отвечает Pin

Добрый день, Ilu!
См. функцию exec

Ответ отправлен: 31.05.2003, 17:52
Отправитель: Pin


Отвечает BOLT

Здравствуйте, Ilu!
Вот процедура:
procedure Exec(Path, CmdLine: string);
Параметры:
Path - полный путь к файлу
CmdLine - параметры запуска.
Счастливо!

Ответ отправлен: 31.05.2003, 22:13
Отправитель: BOLT


Отвечает Дмитрий

Доброе время суток, Ilu!
Есть такая процедурка: Exec(Path, CmdLine). Здесь Path - путь к запускаемой проге, а CmdLine - ее параметры. Оба параметра - строки.

Ответ отправлен: 02.06.2003, 08:59
Отправитель: Дмитрий


Отвечает Tigran K. Kalaidjian

Добрый день, Ilu!
Вот так:
{$M $4000,65532,65532}
...
uses DOS;
...
exec(ИМЯ_программы,ПАРАМЕТРЫ_командной_строки);
{оба параметра типа string}
...
Директива M отвечает за количество памяти, выделяемой программе.
Параметры директивы M:
1. размер стека
2. минимальный размер кучи
3. максимальный размер кучи
Борландовский пример в приложении.

Приложение:

Ответ отправлен: 31.05.2003, 13:08
Отправитель: Tigran K. Kalaidjian


Отвечает DoS@

Добрый день, Ilu!
Сначала выдели память под прогу! {$M 4096,0,10000}
А потом испльзуй этот код:
SwapVectors;
Exec(Путь&ИмяВашейПрограммы, Доп_Параметры);
SwapVectors;

Ответ отправлен: 31.05.2003, 13:44
Отправитель: DoS@


Отвечает [MozgC]

используй команду exec

Ответ отправлен: 31.05.2003, 14:22
Отправитель: [MozgC]


Отвечает Tancho

Доброе время суток, Ilu!
Ну смотри в Приложение!Здесь сорс код на Pascal'е двух
проги :
1) Программа 'V260' вызывает программа 'Pr_kmr.exe';
2) Программа 'pr_kmr.exe' вызываеться с двум параметром;
В принципе как видно и из сорс код 'V260.pas' число параметров не фиксирано, каждая прога можно имет : 0,1,2,
и т.д. параметров;
У вызывающая програма( в моем примере это 'V260.pas' )
директима {$M} обязательна!

Приложение:

Ответ отправлен: 02.06.2003, 19:18
Отправитель: Tancho


 Вопрос № 261

Зравствуйте уважаемые Эксперты!
Не могли бы вы посмотреть почему не происходит присваивание q^.info^.name:=name; Name в процедуру передается нормально, а самого присваивания не происходит.
Спасибо.


Приложение:


Вопрос отправлен: 31.05.2003, 21:19
Отправитель: Leonid (gagarinl@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Shurik

Добрый день, Leonid!
После завершения процедуры вся динамика удаляется


Ответ отправлен: 31.05.2003, 21:49
Отправитель: Shurik


Отвечает --- Нет данных ---

Добрый день, Leonid!
У меня присваивает. Возможно, нужно сменить ограничения на размер string'ов с 20/30 на 255.
В приложении, как я пробовал.


Приложение:

Ответ отправлен: 01.06.2003, 14:49
Отправитель: --- Нет данных ---


Отвечает BOLT

Приветствую Вас, Leonid!
Эх...повнимательнее:
для q ты выделили память, а дляinfo кто будет выделять?Дядя Билл? :з)
И вообще чтоб таких фигень не было, программисты используют объекты.Не пугайся - рано или поздно придется их изучать.
Счастливо!

Ответ отправлен: 01.06.2003, 18:22
Отправитель: BOLT


Отвечает Tancho

Приветствую Вас, Leonid!
Извините пожалуйста, а Вы откомпилировали это что предлагаете для просмотра? Я спрашиваю потому что не вижу
где определеный last & first? Kak Bы поняли что присваивание
Name не произходит? Где Ваша прога? Кагда другой раз хочешь
кто то тебе помочь давай проблем в целом, а не отдельный
фрагмент!А сейчас смотри приложение, здесь присваивание произходить!
P.S. Прога компилирована, линквана и выполнена через
IDE Borland Pascal v.7.0.

Приложение:

Ответ отправлен: 02.06.2003, 11:09
Отправитель: Tancho


Отвечает Ayl

Здравствуйте, Leonid!
Не происходит, потому что присваивать некуда. Вот смотри, TNode является у тебя записью с двумя указателями. В процедуре NewNode ты выделяешь место для этой структуры (8 байт) и дальше пытаешься заняться инициализацией. Но место для структуры TInfo ты не выделяешь! Соответственно, указатель q^.info у тебя не инициализирован и дальнейшая работа программы приведет к ошибке. Тебе после команды new (q) нужно написать new (q^.info), тогда ты выделишь место под структуру TInfo. После этого все должно работать.

Ответ отправлен: 02.06.2003, 11:30
Отправитель: Ayl


Отвечает Bill

Доброе время суток, Leonid!
Проверял ли? В процедуре q^.info^.count:=Acount; - должно быть.
И, видимо, нужно ограничить длину параметра name -> name: string[30]; Хотя вряд ли в этом причина
Видимо, чтобы помочь нужно знать, как это все вызывается?


Ответ отправлен: 02.06.2003, 11:32
Отправитель: Bill



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (37)
C / C++ (30)
Perl (5)
Builder / Delphi (15)
Pascal (28)
Basic / VBA (11)
Java / JavaScript (11)
PHP (7)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (35)
Windows NT/2000/XP (30)
"Железо" (26)
Поиск информации (14)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (8)
Юристу
Гражданское право (5)
Семейное право (2)
Трудовое право (3)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное