Main sections
SHELLCMD()
ok# = SHELLCMD(cmd$, wait#, show#, rv##)
Führt ein anderes Programm aus. Will man DOS-Befehle verwenden, so muss man das Programm CMD bzw. COMMAND (unter Win9x/ME) verwenden und dann den DOS-Befehl eingeben. z.B. "CMD /C dir > files.txt"
wait# gibt an, ob gewertet werden soll, bis das andere Program beendet wurde.
show# gibt an, ob das Fenster des anderen Programms gezeigt werden soll, oder ob es versteckt gestartet wird.
ok# liefert TRUE oder FALSE, je nach dem, ob das andere Programm gestartet werden konnte.
Der Rückgabewert des anderen Programms wird in rv## übertragen.
// --------------------------------- //
// Project: SHELLCMD
// Warnung: Kompliziertes Programm voraus!
DIM files$[1]
 ListFiles(files$[])
 
 FOR i=0 TO BOUNDS(files$[], 0)-1
  PRINT "-" + i + ":" + files$[i], 0, i*16+32
 NEXT
 SHOWSCREEN
MOUSEWAIT
// ------------------------------------------------------------- //
// -=#  LISTFILES  #=-
// ------------------------------------------------------------- //
FUNCTION ListFiles: names$[]
 // Diese Werte werden per Referenz übergeben:
 // names$[], 
 LOCAL tmp$[]
 win9x=FALSE
 ok = SHELLCMD("CMD /C dir /B /ON /OG > dir.txt", TRUE, FALSE, rv)
 IF ok =FALSE
  ok = SHELLCMD("COMMAND /C dir /B /ON /OG > dir.txt", TRUE, FALSE, rv)
  win9x=TRUE
 ENDIF
 IF ok=FALSE
  PRINT "Strange error - no cmd supplied!?", 0, 0
 ELSE
  IF win9x
   PRINT "Windows 9x based", 0, 0
  ELSE
   PRINT "Windows NT based", 0, 0
  ENDIF
 ENDIF
 FOR i=0 TO 255
  GETFILE "dir.txt", i, data$
  IF data$ = "NO_DATA" OR data$ = "NO_FILE" THEN RETURN i
  // realloc space for old files + new file
  DIM tmp$[i+1]
  // copy existing files into temp array
  FOR n=0 TO i-1
   tmp$[n] = names$[n]
  NEXT
  // realloc space for original array
  DIM names$[i+1]
  // copy temp files to array
  FOR n=0 TO i-1
   names$[n] = tmp$[n]
  NEXT
  // add new file
  names$[i] = data$
 NEXT
 RETURN i
ENDFUNCTION

