image2data

Der Tech-Blog

...weitermachen, wo OCR aufhört

DOS-Commands ausführen

Jan 212015

Ab und zu ergibt sich die Notwendigkeit, DOS-Kommandos auszuführen, z.B. DIR oder FIND und deren Ergebnisse in i2dScript weiter zu verwenden. Das folgende Beispiel demonstriert, wie man vorgehen kann. Die erste der markierten Zeilen ruft ein DIR im einfachen Format für das Verzeichnis "C:\" auf und leitet die Ausgabe in die Datei laut RESULTFILENAME um. Die StringListe "oResult" lädt diese Datei und in den beiden folgenden Zeilen wird über alle Einträge iteriert und diese ausgegeben. Die zweite markierte Zeile löscht die Ergebnisdatei wieder mittels eines DEL-Aufrufs.

Der folgende Code ist auch ein schönes Beispiel für ineinander verschachtelte Try-Finally-Blöcke, da auf jeden Fall das Objekt "oResult" wieder freigegeben als auch die Ergebnisdatei wieder gelöscht werden soll:

const
  RESULTFILENAME = 'C:\Temp\Ergebnis.txt';
 
var
  iCount: Integer;
  oResult: TStringList;
 
begin
  oResult := TStringList.Create;
 
  try
    <span style="background-color: #ff9900;">i2dExecute('cmd.exe /c', 'dir /B /A-D C:\ > ' + RESULTFILENAME, 0, True);</span>
 
    try
      oResult.LoadFromFile(RESULTFILENAME);
 
      for iCount := 0 to oResult.Count - 1 do
        i2dDebugOut(oResult[iCount]);
    finally
      <span style="background-color: #ff9900;">i2dExecute('cmd.exe /c', 'del ' + RESULTFILENAME, 0, True);</span>
    end;
  finally
    oResult.Free;
  end;
end.

 

Atom

powered by Nibbleblog