Read/Write inkompatibel zu manchen consolen bzw verzögert?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: Read/Write inkompatibel zu manchen consolen bzw verzöger

Beitrag von KeyKon »

Mir erschließt sich der nutzen deines Code-Umbaus nicht so ganz...
Die While-Schleife is ja ok, aber zum einen crasht es ohne die If-Abfrage falls 7z nich gestartet werden kann, und zum anderen ändert sich durch das -y erstmal auch garnix, außer das 7z nix mehr nachfragt. Vor allem ändert sich nichts an der Tatsache das erst alles zum Schluss ausgegeben wird...
(\/) (°,,,°) (\/)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3875
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Read/Write inkompatibel zu manchen consolen bzw verzöger

Beitrag von bobobo »

ok .. prg gehört mit if abgefragt.
und irgendwie hast du auch sonst fast recht
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3875
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Read/Write inkompatibel zu manchen consolen bzw verzöger

Beitrag von bobobo »

durch timestamp erweitert.Ausgabe im Messagerequester ohne debug mittendrin
auch bei umfangreichen Extraktionen bleibt der Timestamp gleich. :freak:
(Ich glaube mittlerweile, dass es ein Teil des Zip-Algorithmus ist, dass die
Zeit dabei stehen bleibt, vermutlich geht das Entpacken dann leichter von
der Hand :mrgreen: )

Code: Alles auswählen

pfad$ = "D:\file.zip"
out$  = "K:\!\"
pwd$  = "bla"
prg = RunProgram("D:\Programme\7-zip\7z.exe","e "+Chr(34)+pfad$+Chr(34)+" -o"+Chr(34)+out$+Chr(34)+" -p"+Chr(34)+pwd$+Chr(34)+" -y","",#PB_Program_Open|#PB_Program_Read|#PB_Program_Error|#PB_Program_Hide)
If prg
  While ProgramRunning(prg)
    While AvailableProgramOutput(prg)
      e=ElapsedMilliseconds()
      oo.s=ReadProgramString(prg)+"("+Str(e)+")"+#CRLF$
      ;Debug oo
      o.s+oo
      
      ;While e=ElapsedMilliseconds()
      ;  Delay(1)
      ;Wend
    Wend
  Wend
  o.s+"Close"+#CRLF$
  CloseProgram(prg)
EndIf
MessageRequester("",o)
folgender Code geht
Ausgabe erfolgt korrekt

Code: Alles auswählen

Prog = RunProgram("ping.exe", "127.0.0.1 -n 10", GetPathPart(ProgramFilename()), #PB_Program_Open | #PB_Program_Read)
If Prog
  While ProgramRunning(Prog)
   If AvailableProgramOutput(Prog)
     Debug ReadProgramString(Prog)
   EndIf
  Wend
  CloseProgram(Prog)
EndIf
obiges hat wohl was mit dem zip zu tun
Vermutlich geht der Output des 7z.exe in der Console erstmal nicht auf dem stdout raus
und kann darob mit den pb-funktionen auch nicht direkt abgefangen und angezeigt werden.


7z kennt den Switch -so mit der weiteren Angabe > filename
diese Option gibt das Ergebnis dann nach stdout aus was wiederum umgelenkt werden muss (!!)
da die Ausgabe auf der gleichen Konsole mit eine 7z-Fehlermeldung scheitert.
Auch diese Ausgabe scheint erst fertig zu sein wenn 7z mit dem Lauf durch ist.

Eine Lösung ist hier fraglich

Eventuell ne LKösung mit ReadProgramError(..)
soweit ich mich erinnere war das mal eine Lösung in einem ähnlich Fall

---

Wennste statt 7z 7zG nimmst wird damit direkt ein Windowsoutput erzeugt.
:bounce:
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
thminz
Beiträge: 84
Registriert: 25.05.2011 16:01
Computerausstattung: Windows XP, Intel Pentium 4 mit 3,2 Ghz, 2 GB RAM, 500 GB, ATI Radeon HD 4200
Wohnort: Köln

Re: Read/Write inkompatibel zu manchen consolen bzw verzöger

Beitrag von thminz »

bobobo: Mir wurde in einen anderen Forum gesagt man solle EDIT benutzen und hier sollte man bestimt auch benutzen habe ich hier irgendwo gelesen und wozu gibt es sonst Board-Regeln aber ich frage mich warum du als ADMINISTRATOR das nicht tust?? Tolles Vorbild! :freak:
Immer Aktuelle Purebasic Version!!
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3875
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Read/Write inkompatibel zu manchen consolen bzw verzöger

Beitrag von bobobo »

Spiesser :mrgreen:
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Antworten