[Allegro] Flexe
Thomas Berger
ThB at Gymel.com
Do Sep 6 15:10:01 CEST 2012
Liebe Frau Panski, liebe Liste,
> in a-stat.flx kommt mit acon nach wie vor nicht die gewünschte Statistik, es funkioniert nur mit srch.
stimmt, es fehlen die Schalter fuer -b und -k, denke ich.
Da ist ohnehin Reparaturbedarf, denn einerseits ist srch.exe
ja nun doch wieder akzeptabel und andererseits ist es einer
der zu vermeidenden Faelle, wo adhoc eine .bat-Datei
im Arbeitsverzeichnis zusammengeschnipselt wird, dabei
koennte die auch universell formuliert werden:
@echo off
rem dies koennte "a-stat.bat" sein
%-P%\asort stat.alg stats.alg
rem del stat.alg
%-P%\srch -f6 -dstats.alg -ea-stat+a-stat.lst -m0 -Umd1
Es gibt leider keinen Standardmechanismus zum Aufruf von
"allegro"-Modulen aus a99 heraus, vielleicht koennte
folgendes mit in inst-all aufgenommen werden:
1. a99wrap.inc
// Externen Aufruf mit a99wrap.bat kapseln (setzt Environment dort)
end
:a99wrap
ins $arg
get env comspec
ins $comspec
var P
ins #uxP
var D
ins #uxD
var $comspec " /C " P "a99wrap.bat -P=" #uxP(t"\\") " -d=" #uxD(t"\\") " -b=" B
" -k=" K " -O=" #op " -- " $arg
call
return
2. a99wrap.bat
@echo off
: $Id: a99wrap.src 24254 2012-02-17 21:13:36Z ThB $
: a99wrap.bat: DOS-Nachinitialisierungen fuer a99-Aufrufe
: Benutzt Command Extensions von Windows 2000 bzw. XP
:getopts
if "%1" == "" goto noargs
if "%1" == "--" goto lastopt
if "%1" == "-P" goto set
if "%1" == "-d" goto set
if "%1" == "-b" goto set
if "%1" == "-k" goto set
if "%1" == "-D" goto set
rem keine automatischen Schalter
if "%1" == "-K1" goto set
if "%1" == "-O" goto set
set x=%1
if not "%x:~0,1%" == "-" goto lastopt
% Generischer Fall (die Shell hat bereits bei "=" zerlegt)
:set
set %1=%2
shift
shift
goto getopts
:lastopt
shift
set cmd=%1
shift
set args=
:getargs
if %1$ == $ goto launch
set args=%args% %1
shift
goto getargs
:launch
if "%-K1%" == "" set -K1=%-k:~0,1%
for %%D in (%CD%) do set -LOC=%%~dD
if not %ALLEGRODEBUG%! == ! echo will execute %cmd%%args%
if %ALLEGRODEBUG%! == pause! pause
if "%ProgramW6432%" == "" call %-P%\ansi /Q
rem Kehrt ggfls. nicht zurueck...
if %cmd%$ == $ goto noargs
if exist %-P%\%cmd% goto script
if exist %-P%\%cmd%.bat goto script
if exist %-P%\%cmd%.cmd goto script
%cmd%%args%
if errorlevel 1 goto error
goto exit
:script
%-P%\%cmd%%args%
if errorlevel 1 goto error
goto exit
:noargs
echo Nur Initialisierung, nichts aufzurufen?
pause
goto exit
:error
echo Aufruf:
echo %cmd%%args%
echo leider gescheitert!
pause
:exit
Nutzung beispielsweise in a-stat.flx dann etwa so:
var "a-stat"
perform a99wrap
und am Ende der Flexdatei:
end
include a99wrap.inc
viele Gruesse
Thomas Berger
Mehr Informationen über die Mailingliste Allegro