|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.01.2009, 12:19 | #1 |
Пользователь
Регистрация: 09.01.2009
Сообщений: 21
|
Проблема связана с запуском exe фалов!
Привет всем, и заранее спасибо если кто поможет! У меня есть такая проблемка (поиск к сожалению не помог), я запускаю с помощью winexec или ShellExecute из свое программы написанной на дельфи exe-шник написанный на паскале, и теперь самое главное, если в коде паскалевского exe-шника встречается любая функция работы с внешними фалами (типо assign и прочее) работа програмы сразу слетает если запускается через приложение из дельфи, хотя если запустиь самому разумеется все работает! В чем проблема? Я сейчас пытаюсь разобраться с createprocess(возможно чтото прояниться), но я никак немогу понять в чем проблема!
Собственно я пишу приложение которое должно проверять правильность работы паскалевского экзешника, проверку я пытаюсь осуществить через текстовые фалы, тоесть в своей программе я регестрирую все данные о паскалевском exe-шнике, и параметры на вход которые сохраняются в txt, а паскалевский exe шник должен их считать, проработать и записать ответ также в txt и результаты я сверяю, но как я уже сказал при запуске из под дельфи работа с фалами у exe шника слетает! Очень буду рад если вы подскажете как выкрутиться, или если знаете, подскажите как еще можно реализовать проерку! Есть ли какая либо возможность передовать программе параметры а потом их считывать без применения txt документов как я описывал выше? |
09.01.2009, 12:49 | #2 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
Может вы не закрываете файл перед тем как отдать работу паскалевской проге?
|
09.01.2009, 12:59 | #3 |
Пользователь
Регистрация: 09.01.2009
Сообщений: 21
|
По началу я тоже так подумал, позже я начал тестировать все это дело, в итоге получилось что это никак не влияет!
|
09.01.2009, 13:52 | #4 |
Пользователь
Регистрация: 09.01.2009
Сообщений: 24
|
Попытался повторить, работает, хоть с прогой на паскале, хоть с консольной на Delphi. Единственное о что у меня споткнулась прога - это программа которая тестирует пытается прочитать доступ к файлу ДО ТОГО как тестируемая программа создала этот файл.
То есть, при тестировании необходимо запустить процесс и дождаться его завершения, потом уже смотреть что получилось. |
09.01.2009, 14:03 | #5 |
Пользователь
Регистрация: 09.01.2009
Сообщений: 21
|
DelDev: Можеш кинуть мне твой исходник, посмотрю может я где ляпочку допустил, ты запускал через какую функцию? Если ктонибудь знает как можно есчо справится помогите плиз!
Последний раз редактировалось neo-210; 09.01.2009 в 14:29. |
09.01.2009, 15:10 | #6 |
Пользователь
Регистрация: 09.01.2009
Сообщений: 24
|
У меня сделан простой примерчик. Реализовано это все дело так:
В файле input.txt слово "File", программа на паскале (tst.exe и tst.pas) открывает этот файл, добавляет к нему слово "new!" И пишет в файл output.txt Код проверяющей процедуры выглядит так: Код:
|
09.01.2009, 16:29 | #7 |
Пользователь
Регистрация: 09.01.2009
Сообщений: 21
|
DelDev: Спасибо большое, вроде работает, но теперь появилась новая проблемка, и теперь я понял в чем состояла моя прошлая ошибка, если exe-шник находится в папке с главной программой то все нормально запускается, а если в произвольном каталоге то запуск не происходит, точнее запуск происходит но как только у нее код доходит до assign прога слетает, мне же к сожалению нужно чтобы запускало именно из произвольного каталога, так как запускаемых файлов по замыслу проекта будет около 30 и они по разным критериям должны находится в разных каталогах. Пути прописаны 100% правильно. Я с самого начало не понял в чем реальная ошибка, но теперь я немогу понять как запустить файл с произвольного каталога, и почему же прога слетает Может быть есть у кого-нибуть какието идеи?
Последний раз редактировалось neo-210; 09.01.2009 в 16:33. |
09.01.2009, 16:36 | #8 |
Пользователь
Регистрация: 09.01.2009
Сообщений: 24
|
Значит запущенная программа не находит файл с исходными данными. Попробуй использовать SetCurrentDir перед запуском и указывать каталог где фактически лежит нужная в данный момент программа.
|
09.01.2009, 17:35 | #9 |
Пользователь
Регистрация: 09.01.2009
Сообщений: 21
|
DelDev:Я честно говоря не совсям точно тебя сейчас понял! В главной программе я точно указываю нахождение запускаемого файла, но если ты говориш про паскаль, то никак немогу догнать как там использовать функцию SetCurrentDir , в Delphi то она работает. А как определять путь к фалу в паскале чето пока найти немогу, по паскалю вообще мало информации имеется по сравнению с тем же дельфи. Мне даже стало интересно, в паскале есть функция getdir но она требует предварительно знать название диска, а я то его незнаю зарание, а процедуры для определения диска я тоже найти немогу, блин.... В дельфи все намного проще...
Последний раз редактировалось neo-210; 09.01.2009 в 17:45. |
09.01.2009, 17:42 | #10 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
ShellExecute используйте:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Dev-C++ проблема с запуском программ | Надюха | Помощь студентам | 12 | 28.05.2008 03:55 |
MASM.exe помогите пожалуйста с запуском | FlyingRat | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 03.05.2007 20:06 |
проблема с запуском Delphi6 | xen | Общие вопросы Delphi | 2 | 18.03.2007 01:16 |