noch mehr RunProgram() probleme

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Lowrider39
Beiträge: 6
Registriert: 20.11.2008 19:28
Wohnort: Wilnsdorf
Kontaktdaten:

noch mehr RunProgram() probleme

Beitrag von Lowrider39 »

Hallo Leutz,

irgendwie komme ich mit dem RunProgram Befehl nicht ganz zurecht. Jedenfalls funktioniert er nicht so, wie im Refference Manual beschrieben. Sicherlich, mit dem Compiler-Befehl funktioniert es. Allerdings wenn ich mit dem Befehl z.B. so was simples wie whoami aufrufe, hängt sich das ganze in einer never ending Loop auf.

Hier mal ein kleiner Programmausschnitt, hab da schon alles mögliche versucht. Sogar Vermeidung der Fensterausgabe, erst in eine Stringvariable schreiben und erst später ausgeben klappt nicht.

Code: Alles auswählen

  DispCal = RunProgram("/usr/bin/whoami","","/usr/bin",#PB_Program_Open|#PB_Program_Read)
  Zeile$=""
  If DispCal
     While ProgramRunning(DispCal)     
       AddGadgetItem(HandleStandardOutput,-1,Str(ProgramID(DispCal)))
       If AvailableProgramOutput(DispCal)
        Zeile$=Zeile$+ReadProgramString(DispCal)+Chr(13)
        AddGadgetItem(HandleStandardOutput,-1,Zeile$)
       EndIf

     Wend

;    AddGadgetItem(HandleStandardOutput,-1,Zeile$)
    CloseProgram(DispCal)  

  Else
    MessageRequester("Information", "Programm nicht gefunden", 0)

  EndIf
 
Was habe ich hier falsch gemacht? das Programm hängt sich regelmäßig in der While-Wend-Schleife auf. Es wird von PB also nicht bemerkt, dass das Program schon längst beendet ist. Oder doch nicht? Vielleicht hätte ich diesen Beitrag ins Anfängerforum stellen sollen?
Zuletzt geändert von Lowrider39 am 20.11.2008 21:09, insgesamt 1-mal geändert.
egal was du suchst, die Antwort auf alle Fragen nach dem Leben, dem Universum und allem ist ...... 42
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Ich würde ein Delay(...) in die Schleife einbauen und das "Zeile=Zeile+..."
weglassen und direkt in den Parameter setzen. Ich weiß aber nicht, ob
es dann auch funktioniert.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
Lowrider39
Beiträge: 6
Registriert: 20.11.2008 19:28
Wohnort: Wilnsdorf
Kontaktdaten:

Beitrag von Lowrider39 »

Hatte ich auch schon probiert, tut nich
egal was du suchst, die Antwort auf alle Fragen nach dem Leben, dem Universum und allem ist ...... 42
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

unter dem Fenster-OS wuppt der code

hab als programm das whoami (cygwin) benutzt damit da ähnliche
verhältnisse herrschen.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Dann kann es wohl nur am Betriebsystem / Compiler liegen oder am
Programm, dass die Ausgabeinformationen angibt, da ich selbst solch
eine Schleife benutze. (Und es hat geklappt :wink: )

Vieleicht findet jemand einen Umweg...
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
Didelphodon
Beiträge: 360
Registriert: 18.12.2004 13:03
Wohnort: Wien
Kontaktdaten:

Beitrag von Didelphodon »

Empfehlung: Verwendet nicht AvailableProgramOutput mit ReadProgramString, denn ReadProgramString ist für das Entgegennehmen von \n-finalisierten Strings (also Zeilen) gedacht und wartet (siehe auch PB-Hilfe) eigenständig auf Daten.
AvailableProgramOutput sollte mit RAW-Daten verwendet werden.

... so zumindest meine Erfahrungen ...

LG Didel.

PS: Evt. ist der Thread http://www.purebasic.fr/german/viewtopic.php?t=18486 interessant für Euch ...
Das Leben ist ein sch*** Spiel, aber die Grafik ist irre!
Fighting for peace is like fuc*ing for virginity!
Antworten