Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2009, 20:40   #1
alexfmf
 
Регистрация: 02.03.2009
Сообщений: 9
По умолчанию Создаю "тестирующую систему" для проверки задач. Программисты, нужна ваша помощь!

Мне нужно создать "тестирующую систему" для задач, решенных учениками. Планируется, что все задачи по паскалю дети будут решать с помощью файлов. (Данные считываются из файла "input.txt" и конечные результаты записываются в файл "output.txt"). А моя "система" должна изменить входные данные, запустить решенную учеником задачу, проверить результаты... и так несколько раз. И если все идет хорошо, то задача решена правильно.

Подскажите пожалуйста, как запустить файлы "*.pas" и на каком языке лучше реализовать данную "систему"... Заранее спасибо!
alexfmf вне форума Ответить с цитированием
Старый 02.03.2009, 21:05   #2
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Я конечно уже дано с паскалем не водился, теперь на делфе сижу... Вот только вопрос: а при компиляции проги там не формируеться ли exe файл?
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 02.03.2009, 21:06   #3
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

На каком языке, всё равно, лишь бы знал его. pas - это исходники, их нельзя запустить, их надо скомпилировать.
Somebody вне форума Ответить с цитированием
Старый 02.03.2009, 21:19   #4
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

в чем и заключаеться момент просто полюбому учащиеся должны свои проги написать на паскале и потом только сдавать... и вот когда они будут проверять свое деяние прежде чем вам сдавать они по любому его скомпелируют и получат exe файл (если конечно не ошибаюсь).

Тобиш подключаюсь к Somebody...
Помог? Ну так нажми на весы!

Последний раз редактировалось SNUPY; 02.03.2009 в 21:22.
SNUPY вне форума Ответить с цитированием
Старый 02.03.2009, 21:23   #5
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

Для меня совсем не понятное задание ... Но писать на паскале сейчас не логично ... так что надо по любому на Делфи =)
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 02.03.2009, 23:00   #6
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Надо через командную строку запускать компилятор и подсовывать ему в качестве параметра файл с исходником. Затем проверить, что компилятор вывел (тут уж для каждого компилятора придётся писать отдельный парсер вывода), и если компиляция прошла успешно, опять таки через командную строку запускать экзешник.
Вот нарыл в DRKB, как запустить консольное приложение и направить его вывод в файл
Код:
procedure TForm1.Button1Click(Sender: TObject);
var StartupInfo: TStartupInfo;
    ProcessInformation: TProcessInformation;
begin
GetStartupInfo(StartupInfo);
with StartupInfo do
begin
   wShowWindow := SW_HIDE; //не показывать окно
   dwFlags := STARTF_USESHOWWINDOW;
end;
// для примера будем запускать [c:\program files\Borland\Delphi5\Bin]grep.exe с ключом '?'
Win32Check(CreateProcess(nil, 'command.com /c  grep.exe ? > MyStdOut.txt',
   nil, nil, FALSE, CREATE_NEW_CONSOLE, nil, nil, StartupInfo, ProcessInformation));
// ждем пока наш процесс отработает
WaitForSingleObject(ProcessInformation.hProcess, INFINITE);
Win32Check(CloseHandle(ProcessInformation.hProcess));
end;
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 03.03.2009, 00:10   #7
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Можно взять готовые системы и посмотреть их.
А создавать ИМХО лучше на php.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 27.04.2009, 21:52   #8
alexfmf
 
Регистрация: 02.03.2009
Сообщений: 9
По умолчанию

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

WinExec(PChar('{Здесь директория компилятора} - E {Здесь полное имя файла *.pas} '), SW_SHOWNORMAL);

Вопрос: Если в проверяемой задаче ошибка, как при компиляции получить номер строки с ошибкой и номер ошибки?
Я думаю, тут как то надо применить такую штуку: -F<offset> = Find error Но не знаю как... Подскажите пожалуйста...
alexfmf вне форума Ответить с цитированием
Старый 28.04.2009, 13:56   #9
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Надо читать, что компилятор выводит, смотри про перенаправление стандартного ввода/вывода.
Somebody вне форума Ответить с цитированием
Старый 29.04.2009, 16:21   #10
alexfmf
 
Регистрация: 02.03.2009
Сообщений: 9
Вопрос

Цитата:
Сообщение от Somebody Посмотреть сообщение
Надо читать, что компилятор выводит, смотри про перенаправление стандартного ввода/вывода.
Подскажи пожалуйста как это делается...
Какие функции использовать?
alexfmf вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна ваша помощь, решение задач Delphi Рената Помощь студентам 13 28.03.2011 17:24
Уважаемые программисты!нужна ваша помощь! Котенков Алексей Паскаль, Turbo Pascal, PascalABC.NET 0 25.12.2008 03:21
Уважаемые программисты, нужна ваша помощь отблагодарю деньгами vlad-dj Фриланс 13 10.12.2008 02:39
Нужна ваша помощь для решения задач в Delphi DJ Kost Помощь студентам 3 20.10.2008 18:26
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49