DOS приложение

5 отговора 0 прегледа
#1

DOS приложение

Здравейте.
С делфи 7 съм . Системата е XP SP3.
Налага се програмчето което правя , да "извика" пакетатор с който да разпакетира данните. Пакетаторът/разпакетаторът е EXE програмче, което може да се стартира с параметри, а параметрите зависят от изборът на оператора.
Правя следното:
1.Създавам BAT файл
2.В него си записвам командата с параметрите
3.Слагам и някой и друг надпис, като го пренасочвам с >> към файл BLACKBOX.TXT (все пак да знам какво е правил операторът...както всички знаем - НИКОГА юзерът не е правил нищо, апък ...)
4.Стартирам BAT файла. (той ми разтоварва това което ми трябва в една папка, и аз после си вземам от нея мойте си работи)
Стартирането на файла е с процедурата:

Procedure ExecuteFile(NameFile,SParam:String);
Var Handle:Longint;
begin
handle:=0;
ShellExecute(Handle,'open',PChar(NameFile),PChar(SParam),nil,SW_HIDE);
end;

До тук всичко добре! Да ама дойде проблемът! БАТ файлът се бави и аз трябва да изчакам, докато свърши и чак тогава да продължа работата.
Решението:
Преди да стартирам БАТ-файла, създавам файл LOCK.TXT (например) - празен. В БАТ файла последния ред е
DEL LOCK.TXT
а в делфито си дремя в безкраен цикъл, докато го има този файл LOCK.TXT.
Сега всичко е наред и си работи...

УФ! Уморих се от предварителни обяснения....

Та! Проблемът е , че на някои компютри, този BAT файл ( барабар с ЕХЕ-то и всичките му работи вътре), работи доста бавно. Проблемът не е в антивирусна, защото аз не ползвам на моя комп. (И съм сигурен че нема буби)
1.Възможно ли е от някой настройки на бозата да накарам ДОС емулаторът, като си свърши работата - по-бързо да обади на ВИН-а, че е готов?
2.Бърникването на Autoexec.nt, Config.nt дали може да помогне?
3.Вариант с някой разпакетатор (по-нов, на който с параметри мога да задам, кое - къде да отиде? Този които до са га пробвани са PkZip,PkUnZip,UnZip,Rar,UnZrar - все последните ДОС версии.
4.Някой да препоръча разпакетатор за работа с дълги имена и да може да се работи с параметри. Просто предмониторното не трябва да има никакъв достъп (да не му се показват на екрана де) до разпакетаторът.
5.Евентуално друго решение ( с друга функция де се извърши заданието).

Благодаря предварително.

Отговор
в отговор на Dos #2

Re: DOS приложение

[линк]

чети и дишай по-леко
Отговор
в отговор на Dos #3

Re: DOS приложение

Кое налага да се работи с BAT файлове и ДОС под Виндовс?!?

По принцип, бозата е такава, каквато майстора си е направи

Отваряш "Батко Гугъл" и пишеш заявката sourceforge delphi compression
Той ще ти отговори, че има поне 4-5 библиотеки за компресия/декомпресия на файлове без да се използва ДОС и отгоре на това са за Делфи.

"Бърникането" по Autoexec.nt, Config.nt и други такива, едва ли е най-доброто решение, пък и какво може да помогне?

Опитай се да използваш ShellExecuteEx вместо ShellExecute - там си има параметри с които да укажеш, че извикващия код трябва да "изчака" завършването на извикваната програма - така поне ще отпадне това което правиш с тези LOCK файлове...

Пък ако въобще "забравиш" за BAT файлове, а използваш по-горе посочените библиотеки, и този проблем ще ти изчезне

Отговор
в отговор на ИвKo #4

Re: DOS приложение

Благодаря и на двамата за инфото.
Ползването на точно определен разпакетатор, налага от това, че данните не са пактирани от мене, а от стара ДОС програма. И този пакетатор (стар досовски) върши работа за разпакетирането. Не ми се ще да ползвам и готови библиотеки по няколко причини още:
1.Старая се това което сътворя, да не се налага да се инсталира, а да е portable
2.Това програмче няма да асе ползва постоянно - веднъж/два пъти в месеца най много и то за 10-15 мин най много... Просто точи данни от едно място, обработва и записва на друго място...
Сега ще подменя ShellSxecute с ShellExecuteEx.. все пак ще намаля от кода малко... Пък няма и да "карам" ВИН-а да се трови и да проверява има ли някъдеси , някакъв файл... предполагам, че ще се ускорят нещата...
Все пак това е програмче, което ще се ползва 2-3 години най-много, докато отпадне окончателно ХР... (пък и нали и края на света щял да идва[image][/image])

Брагодаря отново!

Отговор
в отговор на DOS #5

Re: DOS приложение

Между другото, то не пречи да е "портабле", дори и да използва други пакети... Аз над 15 години пиша на Делфи, и нито една програма не изисква инсталиране, това му е хубавото... А предполагам, че данните ти идват "пакетирани" само в един формат - така че потърси някакъв код за Делфито, който ги "разпакетира" - моят скромен опит сочи, че с 2 часа търсене в нет-а може да се намери всичко за Делфи....

Отговор
в отговор на DOS #6

Re: DOS приложение

значи от принципна гледна точка, това което трябва да използваш ти го е казал Печения - waitforsingleobject - пускаш си процес, но контролируемо. ShellExec - а е ептен остаряла хвака

пий и пей!
Отговор