Aufruf eines Editors mit Übergabe eines Charakterstring [ERL

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18837
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Aufruf eines Editors mit Übergabe eines Charakterstring [ERL

Beitrag von Manfred » Mo, 13. Feb 2012 18:32

Hi,

ich schreibe bei Fehlermeldungen einen gesammelten Text in eine Textdatei. Jede Meldung wird hinten angefügt, für eine History. Ich würde jetzt aber gerne die letzte Meldung nicht nur an die Textdatei anhängen, sondern auch zum Ansehen am Bildschirm und dann evtl. zum Ausdruck möglich machen. Die komplette Meldung ist jetzt im Speicher in einer Var, wie kriege ich die jetzt an einen Editor, den ich dann per Runshell aufrufe, übergeben? Der Text liegt ja nicht als Datei vor und das Programm wird an dieser Stelle IMMER beendet. Oder komme ich nicht umhin eine temporäre Datei kurz zu erzeugen und die dann aufzurufen?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7695
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Tom » Mo, 13. Feb 2012 19:43

Ich verstehe das Problem nicht. Du kannst RunShell asynchron (dritter Parameter .T.) ausführen, dann läuft Dein Programm weiter und kann sich sogar beenden, ohne das das gestartete externe Programm beendet wird. Den Text schreibst Du in eine Datei im Temp-Verzeichnis (es müsste dazu einen Thread geben, wie man das Benutzer-Temp-Verzeichnis via API herausfindet) und gibst ihr einen temporären Namen (Funktion "TempFile()"). Das Temp-Verzeichnis wird bei "Laufwerk bereinigen" ohnehin mitgelöscht, so dass Du Dich auch nicht um Fragmente scheren müsstest.

Aber so ganz verstehe ich nicht einmal den Ansatz. Was spricht dagegen, einfach eine MsgBox() anzuzeigen, bevor sich Dein Programm beendet? Damit sind auch mehrzeilige Strings darstellbar.

Edit: Notepad, Wordpad und der Windows-Editor können nicht mit einem Text als Parameter gestartet werden, den sie anzeigen sollen. Nur mit Dateinamen.
Herzlich,
Tom

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18837
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Manfred » Mo, 13. Feb 2012 19:49

Ja Tom,

MsgBox. Das war die zündende Idee. Danke aber daran habe ich mal wieder nicht gedacht. :roll: Das genügt mir erstmal.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7695
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Tom » Mo, 13. Feb 2012 19:54

Schön. :) Längeren Text u.U. an einigen Stellen mit CR/LF versehen. :wink:
Herzlich,
Tom

Klaus Stebner
UDF-Programmierer
UDF-Programmierer
Beiträge: 66
Registriert: Fr, 29. Feb 2008 20:53
Wohnort: Furtwangen

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Klaus Stebner » Mo, 13. Feb 2012 20:51

Hallo Manfred,

bei mir mache ich sowas meistens mit DCMULTILINE.
Dann spielt die Länge des Textes auch keine Rolle.
Gruß Klaus

UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2577
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Kontaktdaten:

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von UliTs » Mo, 13. Feb 2012 21:48

Oder einfach XbpMle verwenden :-)

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18837
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Manfred » Di, 14. Feb 2012 6:05

OK,

Allerdings ist diese Routine für Hybrid wie für GUI gedacht. Bei den letzten beiden Vorschlägen müßte ich dann noch etwas Aufwand treiben.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7695
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Tom » Di, 14. Feb 2012 10:25

XbpMLE oder DCMULTILINE - ist ja dasselbe - müssten wieder in einen Dialog eingebunden, mit einem Eventhandler versehen usw. werden, was an einer Stelle, an der es um Laufzeitfehlerbehandlung geht, nicht ganz unkritisch ist. Eine MsgBox() - letztlich ein simpler API-Call - ist da schon verlässlicher, davon abgesehen immer modal und eben auch mit längerem Text benutzbar.

Ich benutze für derlei einen Taskdialog (s.u.). Vorher wird aber geprüft, um welche Art von Fehler es sich gehandelt hat, und nicht bei allen erscheint der Dialog. Außerdem wird der Fehler in eine Log-Datei geschrieben, ein Report mit Screenshot erzeugt usw. Der Button "Details anzeigen" liefert die Fehlerbeschreibung (der Dialog erweitert sich), also genau das, um das es Dir hier vermutlich geht. Es gibt aber auch Einstellungen, die all das unterbinden und lediglich einen Log-Eintrag, eine Mail an unseren Support und eine Beendigung des Programmes auslösen. Der Taskdialog ist noch mit einer zusätzlichen Option "Fehler korrigieren" verfügbar, wenn bestimmte Fehlerarten vorliegen (Symbol ist kein Datenbankfeld, unzulässige Funktion usw - also Fehler, die auf Probleme mit Tabellen oder Indexen verweisen, und die das Programm selbst korrigieren kann).
Dateianhänge
taskdialog.jpg
taskdialog.jpg (46.11 KiB) 1928 mal betrachtet
Herzlich,
Tom

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18837
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Manfred » Di, 14. Feb 2012 10:30

Hi Tom,

das sieht natürlich recht charmant aus. Aber im Moment genügt mir der Tipp mit der MsgBox. Alles weitere werde ich mal nach und nach bauen, wenn ich wieder etwas mehr Zeit habe. Im Moment erweitere ich gerade die Möglichkeiten, was so alles passieren kann. Und ich dachte ich hätte schon recht viel abgefangen. Aber das war falsch gedacht. :roll:
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12032
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von AUGE_OHR » Mi, 15. Feb 2012 4:11

Manfred hat geschrieben:das sieht natürlich recht charmant aus. Aber im Moment genügt mir der Tipp mit der MsgBox. Alles weitere werde ich mal nach und nach bauen ...
du willst ein TaskDialog Control bauen ? da würde ich doch zu Codejock Controls greifen.
gruss by OHR
Jimmy

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18837
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Manfred » Mi, 15. Feb 2012 7:11

Oops,

da war nicht die Rede von (zumindest vorerst). Mir gefiel nur die Aufmachung. Den Namen habe ich gar nicht gesehen.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Antworten