Вопрос № 173617: Здравствуйте уважаемые эксперты! Есть такое задание, постараюсь объяснить... Нужно создать редактор для компилятора MASM (assembler). За меня решать задание не нужно, просто объясните пожалуйста как это сделать. Ведь если я не ошибаюсь, нуж...
Вопрос № 173617:
Здравствуйте уважаемые эксперты! Есть такое задание, постараюсь объяснить...
Нужно создать редактор для компилятора MASM (assembler). За меня решать задание не нужно, просто объясните пожалуйста как это сделать. Ведь если я не ошибаюсь, нужно это делать посредством коммандной строки. Меня интересует как средствами Delphi сделать следующее(скомпилировать и т.д.)
1. Перейти на диск, например выполнить команду D:\ 2. Выполнить команду masm prog1.asm
т.е. выолнять такого
рода команды... Также нужно фиксировать результат выполнения этих команд в программе, т.е. чтобы например на Memo отображалось то, что и в cmd в результате выполнения команд. Или есть другие варианты?
Отвечает Selax, 4-й класс :
Здравствуйте, Николай // Programmator . Не совсем понятен вопрос: Вам нужен редактор кода? Посмотрите в демках Делфи пример RichEdit. 1. Перейти на диск или директорию можно выполнив функцию function SetCurrentDir ( const Dir : string ) : Boolean; 2. Выполнить команду можно либо функцией ShellExecute(нужно добавить в uses ShellApi) либо CreateProcess Как выводить в memo результат выполнения команд можно посмотреть по ссылке в приложении
Приложение:
Ответ отправил: Selax, 4-й класс
Ответ отправлен: 23.10.2009, 23:43
Оценка ответа: 5 Комментарий к оценке: Спасибо)))
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 255772
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Akahaos, 1-й класс :
Здравствуйте, Николай // Programmator !
Пример командной строки в делфи:
procedure RunDosInMemo(CmdLine: string; AMemo: TMemo); const ReadBuffer = 2400; var Security: TSecurityAttributes; ReadPipe, WritePipe: THandle; start: TStartUpInfo; ProcessInfo: TProcessInformation; Buffer: Pchar; BytesRead: DWord; Apprunning: DWord; begin Screen.Cursor := CrHourGlass; Form1.Button1.Enabled := False; with Security do begin
nlength := SizeOf(TSecurityAttributes); binherithandle := true; lpsecuritydescriptor := nil; end; if Createpipe(ReadPipe, WritePipe, @Security, 0) then begin Buffer := AllocMem(ReadBuffer + 1); FillChar(Start, Sizeof(Start), #0); start.cb := SizeOf(start); start.hStdOutput := WritePipe; start.hStdInput := ReadPipe; start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW; start.wShowWindow := SW_HIDE;
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.