LxTerminal auslesen
- af0815
- Lazarusforum e. V.
- Beiträge: 6762
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
LxTerminal auslesen
Ich möchte den Inhalt eines LxTerminal auslesen, daher den Inhalt der sichtbar ist. Dieser wird durch eine Verbindung mit einem anderen Rechner über TCP/IP befüllt (TN5250 Emulation). Diese Verbindung kann ich nicht direkt übernehmen, da ich ansonsten alle möglichen Terminalbefehle auswerten müsst und richtig darauf reagieren. Es sind relativ einfach gehaltetene Masken die ich auswerten möchte und später dann Eingaben senden. Das ganze unter Raspbian. Alternativ wäre eine Terminalemulation in Pascal Sourcecode. Nur dazu habe ich nichts gefunden, was brauchbar erscheint.
Bildschirm hardcopy und daraus eine Mustererkennung machen, ist auch nicht die beste Lösung. Kommt man irgendwie an den Inhalt des Fensters heran ?
Bildschirm hardcopy und daraus eine Mustererkennung machen, ist auch nicht die beste Lösung. Kommt man irgendwie an den Inhalt des Fensters heran ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: LxTerminal auslesen
Ich glaube nicht, dass du so einfach an den Text-Inhalt des Fenster heran kommst.
Du könntest eine Aufzeichnung mit [url0https://asciinema.org/]asciinema[/url] aufzeichnen und diese dann auswerten. Oder du schaltest ein eigenes virtuelles Terminal zwischen LxTerminal und deinem Programm.
Du könntest eine Aufzeichnung mit [url0https://asciinema.org/]asciinema[/url] aufzeichnen und diese dann auswerten. Oder du schaltest ein eigenes virtuelles Terminal zwischen LxTerminal und deinem Programm.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: LxTerminal auslesen
Hallo!
Lass Linux für Dich arbeiten. Dafür gibt es den Befehl
script
Dieser muss gestartet werden, bevor die TCP/IP Daten dort reinkommen.
script schreibt alle Daten der Konsole in eine Datei Deiner Wahl.
Für Dich passend ist
script -af /MeinVerzeichnis/MeineDatei
-a bedeutet "append" - wird an die Datei angehängt - falls vorhanden. Sonst Datei erzeugt.
-f bedeutet "flush" - nach jedem write an die Konsole werden die Daten in die Datei geflusht.
Nun kannst Du die Daten aus Deiner Datei auslesen.
Ob neue Daten anliegen musst Du mit filesize checken.
Winni
Lass Linux für Dich arbeiten. Dafür gibt es den Befehl
script
Dieser muss gestartet werden, bevor die TCP/IP Daten dort reinkommen.
script schreibt alle Daten der Konsole in eine Datei Deiner Wahl.
Für Dich passend ist
script -af /MeinVerzeichnis/MeineDatei
-a bedeutet "append" - wird an die Datei angehängt - falls vorhanden. Sonst Datei erzeugt.
-f bedeutet "flush" - nach jedem write an die Konsole werden die Daten in die Datei geflusht.
Nun kannst Du die Daten aus Deiner Datei auslesen.
Ob neue Daten anliegen musst Du mit filesize checken.
Winni
- af0815
- Lazarusforum e. V.
- Beiträge: 6762
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: LxTerminal auslesen
Danke für den Input, da muss ich mal weiter Grundlagenstudien machen.
Irgendwo bin ich schon mal über das Pseudoterminal und Pascal gestolpert, mal sehen ob ich das wiederfinde.
Die Variante wäre am besten, mal sehen ob das mit Script bzw. asciinema grundlegend geht.Socke hat geschrieben: Mo 13. Jul 2020, 13:54Oder du schaltest ein eigenes virtuelles Terminal zwischen LxTerminal und deinem Programm.
Irgendwo bin ich schon mal über das Pseudoterminal und Pascal gestolpert, mal sehen ob ich das wiederfinde.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: LxTerminal auslesen
Meinst du das? https://forum.lazarus.freepascal.org/in ... ic=42830.0af0815 hat geschrieben: Mo 13. Jul 2020, 16:10Irgendwo bin ich schon mal über das Pseudoterminal und Pascal gestolpert, mal sehen ob ich das wiederfinde.
Hier gibts auch ein Terminal: https://forum.lazarus.freepascal.org/in ... ic=40870.0
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
- af0815
- Lazarusforum e. V.
- Beiträge: 6762
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: LxTerminal auslesen
Ich bin mir nur nicht sicher ob vte und 5250 zusammen passen. Wie gesagt ich bin am Testen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 19
- Registriert: Mo 1. Okt 2007, 21:57
- OS, Lazarus, FPC: Linux: KDE Neon, Sparky - akt. Lazarus stable, FPC 3.0.2
- CPU-Target: 32/64Bit
- Wohnort: Rommerskirchen, NRW
Re: LxTerminal auslesen
Hallo,
kenne das Screenscraping auf IBM 3270 sonst nur aus vba.
Aber ginge es hiermit http://x3270.bgp.nu/ nicht schneller? Ein Programm ist extra fürs scripten ausgelegt afair...
Gruß
Boris
kenne das Screenscraping auf IBM 3270 sonst nur aus vba.
Aber ginge es hiermit http://x3270.bgp.nu/ nicht schneller? Ein Programm ist extra fürs scripten ausgelegt afair...
Gruß
Boris
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: LxTerminal auslesen
Hallo Andi,af0815 hat geschrieben: Mo 13. Jul 2020, 13:08 Ich möchte den Inhalt eines LxTerminal auslesen, daher den Inhalt der sichtbar ist. Dieser wird durch eine Verbindung mit einem anderen Rechner über TCP/IP befüllt (TN5250 Emulation). Diese Verbindung kann ich nicht direkt übernehmen, da ich ansonsten alle möglichen Terminalbefehle auswerten müsst und richtig darauf reagieren.
ich wollte vor kurzem ebenfalls den Inhalt aus einem Terminal auslesen und bin dabei auf die Idee gekommen, das Konsolenprogramm, welches den Terminal-Output erzeugt, direkt selbst aus meiner Anwendung heraus zu starten und den Output-Stream zu lesen.
Über TProcess ist das ziemlich einfach möglich. Dazu habe ich das Verfahren gewählt, welches im folgenden Link unter der Überschrift "Reading large output" genannt wird:
https://wiki.freepascal.org/Executing_E ... rge_output
Vielleicht kannst Du diese Idee auch für Dein Problem verwenden.
Liebe Grüße vom Euklid
- af0815
- Lazarusforum e. V.
- Beiträge: 6762
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: LxTerminal auslesen
EIn 3270 ist nicht mit dem 5250 ident. Das 5250 ist wesentlich umfangreicher von den Befehlen die es selbst verarbeiten kann. Ich nehme es trotzdem mal auf meine Testliste.Boris hat geschrieben: Di 14. Jul 2020, 13:30 Aber ginge es hiermit http://x3270.bgp.nu/ nicht schneller? Ein Programm ist extra fürs scripten ausgelegt afair...
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 19
- Registriert: Mo 1. Okt 2007, 21:57
- OS, Lazarus, FPC: Linux: KDE Neon, Sparky - akt. Lazarus stable, FPC 3.0.2
- CPU-Target: 32/64Bit
- Wohnort: Rommerskirchen, NRW
Re: LxTerminal auslesen
Sorry, wer lesen kann ist klar im Vorteil. Hatte 3270 = 5250 gesetzt.
Da wir auf der Arbeit aber nur eine 3270er Emulation haben, kenne ich mich auch nur damit so ein wenig aus - habe ein paar Arbeitsprozesse mit Excel automatisiert (war zu faul zum tippen). Daher sah das x3270 für mich so aus, als könnte es helfen. Aber wenn ein 5250 gebraucht wird...
Lese trotzdem mal interessiert mit, man kann ja nie wissen, ob man es mal braucht
Da wir auf der Arbeit aber nur eine 3270er Emulation haben, kenne ich mich auch nur damit so ein wenig aus - habe ein paar Arbeitsprozesse mit Excel automatisiert (war zu faul zum tippen). Daher sah das x3270 für mich so aus, als könnte es helfen. Aber wenn ein 5250 gebraucht wird...
Lese trotzdem mal interessiert mit, man kann ja nie wissen, ob man es mal braucht
