Aufruf eines Editors mit Übergabe eines Charakterstring [ERL

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Aufruf eines Editors mit Übergabe eines Charakterstring [ERL

Beitrag von Manfred »

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 Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Tom »

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: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Manfred »

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 Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Tom »

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 »

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: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von UliTs »

Oder einfach XbpMle verwenden :-)

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Manfred »

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 Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Tom »

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) 5536 mal betrachtet
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Manfred »

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 Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von AUGE_OHR »

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: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Aufruf eines Editors mit Übergabe eines Charakterstring

Beitrag von Manfred »

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 Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten