einen Process.Output mit Tab separieren und in TStringGrid speichern

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
nevermore2k
Beiträge: 76
Registriert: Sa 1. Mai 2021, 15:39

einen Process.Output mit Tab separieren und in TStringGrid speichern

Beitrag von nevermore2k »

ich versuche gerade den output von pact list short in ein Grid zu speichern.

Dieser sieht ungefähr so aus

"17 Virt_In_01 module-jack-source.c float32le 2ch 44100Hz SUSPENDED"

Natürlich viele Zeilen.

Momentan scheitere ich daran das ich den Process.Output der wohl ein TInputPipeStream ist, nicht in etwas umgewandelt bekomme, dass ich eine TStringList mit DelimitedText bekomme... ich kann es nur als LoadFromStream dort reinladen, aber danach kein Delimiter durchführen.

Das ist was ich bisher schon habe.. Funktioniert natürlich nicht.. Vielleicht gehe ich da auch von der falschen Seite ran.


Code: Alles auswählen

procedure TForm1.Button4Click(Sender: TObject);
var
  inText: TStringList;
 // L: TStrings;
 // S, E: string;

begin

  inText := TStringList.Create;
  inText.Delimiter:=#9;
  inText.StrictDelimiter := true;


  Process1 := TProcess.Create(nil);
  Process1.CommandLine := 'pactl list short';
  Process1.Options := [poWaitOnExit, poUsePipes];
  Process1.Execute;
  inText.DelimitedText:=Process1.Output;
  Memo2.Lines.AddStrings(inText);
 // inText.LoadFromStream(Process1.Output);
  // S.LoadFromStream(Process1.Output);
  // Memo2.Lines.AddStrings(msg);
end;   

Benutzeravatar
Winni
Beiträge: 796
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.0.12, fpc 3.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: einen Process.Output mit Tab separieren und in TStringGrid speichern

Beitrag von Winni »

Hi!

Du sagst "Natürlich viele Zeilen".

Dann sieh Dir mal diese Seite an

https://wiki.freepascal.org/Executing_E ... rge_output

Und dort die Abteilung "Reading large output". Da wird gezeigt, wie in einem loop der output in einen Buffer gelesen wird.

Winni

nevermore2k
Beiträge: 76
Registriert: Sa 1. Mai 2021, 15:39

Re: einen Process.Output mit Tab separieren und in TStringGrid speichern

Beitrag von nevermore2k »

Danke :) ich führe mir das mal zu Gemüte

Antworten