Thema: Delphi [DOS] Ausgabe abfangen

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#35

Re: [DOS] Ausgabe abfangen

  Alt 15. Aug 2008, 05:58
Moin,

ich hatte meinen Code in Beitrag #33 als unabhängig von Mogtars konkreten Anforderungen deklariert und mich nur auf das Problem der INI-Daten und deren Verarbeitung konzentriert, da das zeilenweise Verarbeiten ja schon früher im Thread gezeigt wurde, aber okay - hier die Verknüpfung der beiden Code-Teile, damit niemand stolpert:

Delphi-Quellcode:
program Demo;

{$APPTYPE CONSOLE}

uses
  Classes,
  IniFiles,
  Windows,
  SysUtils;

var
  stream: TStream;
  strings: TStrings;
  ini: TMemIniFile;
  h: THandle;
  ft: Cardinal;
  line: string;

const
  SECTION = 'boot loader';

begin
  ini := TMemIniFile.Create('');
  strings := TStringList.Create;
  h := GetStdHandle(STD_INPUT_HANDLE);
  ft := GetFileType(h);
  if ParamCount > 0 then
    stream := TFileStream.Create(ParamStr(1), fmOpenRead)
  else if ft <> FILE_TYPE_CHAR then
    stream := THandleStream.Create(h)
  else
    stream := nil;
  if Assigned(stream) then
  begin
    strings.LoadFromStream(stream);
    stream.Free;
  end else
  begin
    AssignFile(input, '');
    Reset(input);
    while not Eof do
    begin
      ReadLn(line);
      strings.Add(line);
    end;
    CloseFile(input);
  end;
  ini.SetStrings(strings);
  strings.Free;
  if ini.SectionExists(SECTION)
    then WriteLn('roll your own dice ...')
    else WriteLn('unexpected data found');
  ini.Free;
end.
Freundliche Grüße
  Mit Zitat antworten Zitat