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