Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Anmeldungen zum Forentreffen 2018 sind auf der Anmeldeseite möglich
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

RunShell() Rückgabewert [ERLEDIGT]

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

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

RunShell() Rückgabewert [ERLEDIGT]

Beitrag von Manfred » Mo, 20. Nov 2017 16:29

Ich habe hier zwar einiges gefunden zu Runshell() , aber wie ist das mit den Rückgabewerten?
0 = alles ok
-1 = es ist was faul
aber wofür steht "1" ?
den bekomme ich jetzt zurückgeliefert. Ist das so wie -1?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13907
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: RunShell() Rückgabewert

Beitrag von brandelh » Mo, 20. Nov 2017 16:44

Ich meine die Funktion RunShell liefert den Fehlercode des aufgerufenen Programmes, eventuell aber nur bei synchroner Ausführung.
-1 bedeutet, dass das Programm nicht gestartet werden konnte !
0 immer wenn nichts ermittelt werden konnte, oder das Programm 0 (alles OK) gemeldet hat
steht sogar in der Hilfe: ;-)
Der Rückgabewert von RunShell() ist der Rückgabewert des gestarteten Befehlsprozessors bzw. des Programms.
Wenn ein Befehlsprozessor/Programm im asynchronen Modus gestartet wird, ist der Rückgabewert immer 0.
Konnte das Programm nicht gestartet werden dann wird -1 zurückgegeben.
Schau mal hierfür die Erklärung wie ein Xbase++ / Clipper Programm so einen Zustand setzt.
QUIT | CANCEL [<nErrorLevel>]

Parameter

<nErrorLevel>

Optional kann bei dem Befehl ein numerischer Wert als Parameter angegeben werden. Dieser wird an die Funktion ErrorLevel() übergeben.
Gruß
Hubert

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

Re: RunShell() Rückgabewert

Beitrag von Manfred » Mo, 20. Nov 2017 16:57

Hi Hubert,
Danke für Deine Info, aber Du hast ja jetzt mehr oder weniger nur wiederholt, was ich geschrieben habe.
Eigentlich stehe ich vor dem Problem nicht zu wissen, was eine einfache 1 zu bedeuten hat. Das steht nicht in der Hilfe. Oder irre ich?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

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

Re: RunShell() Rückgabewert

Beitrag von UliTs » Mo, 20. Nov 2017 17:34

Hat Hubert doch schon geschrieben: das Programm hat die 1 als Rückgabewert bzw. Errorcode zurückgegeben.
Das kannst du auch mit einem eigenen Programm testen :-) .
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück

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

Re: RunShell() Rückgabewert

Beitrag von AUGE_OHR » Mo, 20. Nov 2017 17:39

Manfred hat geschrieben:
Mo, 20. Nov 2017 16:57
Eigentlich stehe ich vor dem Problem nicht zu wissen, was eine einfache 1 zu bedeuten hat.
Das steht nicht in der Hilfe. Oder irre ich?
was Hubert wohl sagen wollte ist das man dazu einen ERRORLEVEL setzten muss der nach dem beendet des Programms noch besteht.

wenn du nun unter ERRORLEVEL guckst :
Standardmäßig ist der Return-Code einer Xbase++ Anwendung 0, wenn das Programm ordnungsgemäß beendet wurde.
Bei einem Laufzeitfehler wird der Return-Code von der Standard-Fehlerroutine auf 1 gesetzt, bevor das Programm mit QUIT beendet wird.
gruss by OHR
Jimmy

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

Re: RunShell() Rückgabewert

Beitrag von Manfred » Mo, 20. Nov 2017 18:04

gebt zu, ihr wollt mich auf die Probe stellen....
Das weiß ich doch alles, aber was hat die 1 zu besagen? Es ist was nicht korrekt. Das klingt aber so wie:
Alles klar?
nein, es lief was falsch
was denn?
ja, es lief was falsch.
Und was lief falsch?
Es lief was falsch.
Die Zahl 1, ist sie wie ein False zu betrachten, oder wie die Zahl -1? Oder kann man irgendwo nachlesen, was es evtl. für ein Fehler war? Sind es die OS Meldungen? Ich habe so nichts gefunden.
Ob ich jetzt Errorlevel() abfrage, oder den Rückgabewert der RunShell() Funktion ist doch gleich. Es gibt in beiden Fällen die gleiche Zahl.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
HaPe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 281
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz

Re: RunShell() Rückgabewert

Beitrag von HaPe » Mo, 20. Nov 2017 18:08

Hallo Manfred !
Das weiß ich doch alles, aber was hat die 1 zu besagen?
Verrate doch mal welches Programm du mittels RunShell aufrufst:
- Eigenes Xbase++-Programm
- Fremdes Xbase++-Programm
- Office
- Fremdes Programm das geheim bleiben muss
- CMD.EXE
- ...
--
Hans-Peter

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

Re: RunShell() Rückgabewert

Beitrag von Manfred » Mo, 20. Nov 2017 18:13

ich rufe 7za.exe damit auf. Also ein Packprogramm. Das hat zum ersten Mal gemeckert. Zwischenzeitlich habe ich systematisch die Dateien, die gepackt werden sollen entfernt und dann häppchenweise zurückkopiert und immer wieder laufen lassen. Komischerweise gibt es jetzt keine Fehlermeldung mehr.
Mein Interesse liegt nur darin, ob ich die 1 einfach ignorieren kann/soll.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

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

Re: RunShell() Rückgabewert

Beitrag von AUGE_OHR » Mo, 20. Nov 2017 18:15

Manfred hat geschrieben:
Mo, 20. Nov 2017 18:04
gebt zu, ihr wollt mich auf die Probe stellen....
Das weiß ich doch alles, aber was hat die 1 zu besagen? Es ist was nicht korrekt.
liest du was andere schreiben ?
Bei einem Laufzeitfehler wird der Return-Code von der Standard-Fehlerroutine auf 1 gesetzt, bevor das Programm mit QUIT beendet wird.
gruss by OHR
Jimmy

Benutzeravatar
HaPe
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 281
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz

Re: RunShell() Rückgabewert

Beitrag von HaPe » Mo, 20. Nov 2017 18:18

Hallo Manfred !
ich rufe 7za.exe damit auf.
Guggst du hier: http://7zip.bugaco.com/7zip/MANUAL/exit_codes.htm
--
Hans-Peter

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

Re: RunShell() Rückgabewert

Beitrag von Manfred » Mo, 20. Nov 2017 18:20

Jimmy,
ich habe es genau gelesen und auch mehrfach erwähnt. Es gab einen Laufzeitfehler. Aber was hat das zu bedeuten? Wenn jemand umfällt, dann kann ihm übel geworden sein, oder er ist gestorben. beides könnte man unter Laufzeitfehler einordnen. Aber genaues weiß man nicht ohne genauere Prüfung. Wenn die 1 bedeuten soll, es hat nicht geklappt, was es aber war, erfährt man nicht. OK, dann ist das so. Aber sind das vernünftige Codes für ein OS? Können noch andere Zahlen auftauchen?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

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

Re: RunShell() Rückgabewert

Beitrag von Manfred » Mo, 20. Nov 2017 18:21

Ah, Hape
Danke. Es gibt also mehrere und es hängt speziell mit dem programm zusammen wie ich es jetzt erkenne. Das hatte ich anders interpretiert.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
Beiträge: 1322
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: RunShell() Rückgabewert [ERLEDIGT]

Beitrag von Werner_Bayern » Mo, 20. Nov 2017 21:11

Servus Manfred,

warum verwendest Du nicht die XbZLib?
es grüßt euch

Werner

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

Re: RunShell() Rückgabewert [ERLEDIGT]

Beitrag von Manfred » Di, 21. Nov 2017 8:06

Hallo Werner,
die kenne ich nur vom Namen her. Kann die so klein machen wie 7zip?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13907
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: RunShell() Rückgabewert [ERLEDIGT]

Beitrag von brandelh » Di, 21. Nov 2017 8:19

7zip kann 7z Archive gut und ZIP leicht verschlüsseln, das kann XbZLib nicht.
Die ZIP Dateien werden aber gleich generiert, sonst wären sie ja nicht kompatibel, somit müsste auch die Größe der Datei etwa gleich sein.
Gruß
Hubert

Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
Beiträge: 1322
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: RunShell() Rückgabewert [ERLEDIGT]

Beitrag von Werner_Bayern » Di, 21. Nov 2017 10:25

Manfred hat geschrieben:
Di, 21. Nov 2017 8:06
Hallo Werner,
die kenne ich nur vom Namen her. Kann die so klein machen wie 7zip?
Sie hat folgende Kompressions-Einstellungen:
Define Value Description

XBZ_DEFAULT_COMPRESSION -1 Default compression (similar to 6).

XBZ_NO_COMPRESSION 0 No compression, cannot be specified!

XBZ_BEST_SPEED 1 Minimum compression, fastest speed.

XBZ_BEST_COMPRESSION 9 Maximum compression, slowest speed.

Also possible are all integer values between 1 and 9 (for which no define constants exist), which determine the relation between Speed and Compression Ratio and give a finer granulation than the above listed Define values. But in virtually all cases, the Default Compression is the best compromise between compression ratio and speed. Using higher compression ratios will result in only very slightly smaller files, and using a better speed (lower compression ratio) will give only very small improvements in the speed!
Folgende Methoden:
Init
Open
IsOpen
Save
Close
AddSFX
RemoveSFX
Test
Fix
AddDir
AddList
AddFile
AddData
AddEntry
ReplaceEntry
Delete
DeleteEntry
TestEntry
FixEntry
FindEntry
Extract
ExtractEntry
CopyFromZip
CopyToZip
ChangeFileName
ChangeFileDateTime
ChangeFileAttrib
ChangeFileComment
SetBaseDirectory
NormalizeFileName
GetData
Directory
StatusList
WildCardDir
SetDisplayObject
CloseDisplay
Display
Es ist sogar eine komplette Commandozeilen-Version mit dabei von Andreas Gehrs-Pahl.

Funktioniert einwandfrei, Du hast volle Kontrolle über das Ein- und Auspacken und sehr viele Möglichkeiten. Benötigt ot4xb.
es grüßt euch

Werner

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

Re: RunShell() Rückgabewert [ERLEDIGT]

Beitrag von AUGE_OHR » Di, 21. Nov 2017 17:23

wenn man keine Verschlüsselung braucht kann man auch das "eingebaute" ZIP (Copyhere ***) nehmen.
dann auch den grünen Progressbar für den Fortschritt.

*** viewtopic.php?f=16&t=5306
gruss by OHR
Jimmy

Antworten