Ha jól értem, akkor az ipconfig /all parancs eredményében szeretnél keresgélni, majd egy szövegfájlba menteni a kiemelt adatokat. A következő parancsok egy StringList-be gyűjtik neked az ipconfig /all kimenetét (
sajnos az ANSI kódolás miatt a magyar ékezetek egyelőre még eltűnnek
). A StringList-et a végén le is mentheted fájlba, vagy előtte kikeresheted belőle a fontosabb adatokat. A kód:
uses Process, ...
procedure TForm1.Button1Click(Sender: TObject);
const BUF_SIZE = 2048;
var aProcess: TProcess;
StrList: TStringList;
aStream: TStream;
BytesRead: integer;
Buffer: array [1..BUF_SIZE] of byte;
begin
aProcess := TProcess.Create(nil);
aProcess.Executable := 'ipconfig';
aProcess.Parameters.Add('-all');
aProcess.Options := aProcess.Options + [poUsePipes];
aProcess.Execute;
aStream := TMemoryStream.Create;
repeat
BytesRead := AProcess.Output.Read(Buffer, BUF_SIZE);
aStream.Write(Buffer, BytesRead);
until BytesRead = 0;
aProcess.Free;
StrList := TStringList.Create;
aStream.Position := 0;
StrList.LoadFromStream(aStream);
// Sajnos az aStream túl hosszú ahhoz, hogy egy egyszerű StrList.LoadFromStream(aProcess.Output); működjön,
// a fenti bufferezgetés feltétlen szükséges volt nálam a működéshez.
aStream.Free;
StrList.SaveToFile('lista.txt');
StrList.Free;
end;