AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TDosCommand o.ä. für Firemonkey?

Ein Thema von softtouch · begonnen am 28. Okt 2022 · letzter Beitrag vom 28. Okt 2022
Antwort Antwort
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
212 Beiträge
 
Delphi 12 Athens
 
#1

TDosCommand o.ä. für Firemonkey?

  Alt 28. Okt 2022, 10:51
Ich nutze oft mal TDosCommand, um Programme wie youtube-dl oder ffmepg.exe auszuführen und deren dos Ausgabe abzufangen und auszuwerten. Dabei nutze ich den Event onNewLine, der nach jeder Zeile der Ausgabe aufgerufen wird (zeilenweise ist wichtig für mein Programm). Nun suche ich genau sowas, aber für macOS/Firemonkey und hatte bisher kein Glück. Ist jemand sowas wie TDosCommand bekannt, welches auch unter macOS/FMX funktioniert? Wie gesagt, es ist wichtig, das ich jede einzelne Zeile erhalte wenn diese im Terminal ausgegeben wird.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.345 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TDosCommand o.ä. für Firemonkey?

  Alt 28. Okt 2022, 11:28
Hilft dir das vielleicht?
Read And Interact With A Command Line Pipe In Delphi XE7 Firemonkey On Mac OSX
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
212 Beiträge
 
Delphi 12 Athens
 
#3

AW: TDosCommand o.ä. für Firemonkey?

  Alt 28. Okt 2022, 11:35
Danke, aber es hilft nicht wirklich. Das ist fast wie mein aktueller Code, welcher die gesamte Ausgabe auf einmal bekommt, wenn der Task abgeschlossen ist. Was ich brauche ist aber Zeile für Zeile, wie eben TDosCommand es mit dem Event onNewLine macht. Leider habe ich absolut nichts dazu gefunden.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.345 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TDosCommand o.ä. für Firemonkey?

  Alt 28. Okt 2022, 15:42
Das ist fast wie mein aktueller Code, welcher die gesamte Ausgabe auf einmal bekommt, wenn der Task abgeschlossen ist.
Das sollte damit aber möglich sein. Die Pipes werden gefüllt, sobald das gestartete Programm etwas hinein schreibt.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#5

AW: TDosCommand o.ä. für Firemonkey?

  Alt 28. Okt 2022, 17:21
TDosCommand, TComPort und Andere, wie Dieses, lesen in Windows oft in einem Thread/Timer regelmäßig aus den Pipes
und kopieren es entweder in einen eigenen Puffer oder geben es direkt weiter.

In dem Verlinkten wird der Prozess gestartet und dann im Button (ab und an oder am Ende) die Pipes ausgelesen.



Eventuell muß man auch aufpassen ... darum oft in einem Thread, der immer weiterläuft ... dass eventuell der Speicher/Cache der Pipe voll läuft und Daten verloren gehen, wenn man nicht regelmäßig was abholt.
Über Events kann man, beim Lesen, die Pausen zwischen eintreffenden Daten resssourcenschonender gestalten.


Ich weiß nicht ob diese Pipes/Caches im Linux/MacOS/Android auch ein Limit haben, aber vermutlich schon,
also kann man es auch da im Prinzip genauso machen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz