HILFE! QProcess "verschluckt" input!
Verfasst: 23. Februar 2008 15:48
Hallo!
Ich habe ein Problem, dass mich bald zum verzweifeln bringt.
Mein Programm gibt output in einem CSV ähnlichen Format. Die erste Spalte ist hierbei die Zeilennummer, welche fortlaufend sind. Es können mitunter mehrere hundert Zeilen sein.
So ungefähr sieht das ganze dann aus:
1;asdjflah jölasdhkflöka;hengkehgl;gahelgaslghle
2; ajlödhlöaghl löaghalö;aöghelögh;agöjklkweghlöa
3;asdjflah jölasdhkflöka;hengkehgl;gahelgaslghle
4; ajlödhlöaghl löaghalö;aöghelögh;agöjklkweghlöa
5;asdjflah jölasdhkflöka;hengkehgl;gahelgaslghle
6; ajlödhlöaghl löaghalö;aöghelögh;agöjklkweghlöa
Ich lese aus, wenn ein readyRead()-Signal emittiert wird, zum Auslesen selbst verwende ich readAll().
Mein Problem ist, dass QProcess einfach mal ein paar hundert Zeilen verschluckt! Ich gebe den Output direkt nachdem ich ihn in in eine QString Variable eingelesen habe per qDebug aus, und die genannten Daten fehlen einfach. Manchmal ist es so, dass er das Ende des Outputs abschneidet, also die letzten Zeilen fehlen; manchmal lässt er aber auch in der Mitte irgendwo ein paar hundert Zeilen rausfallen.
In dem Fall, dass er am Ende was abschneidet habe ich gedacht, dass readAll() vllt. nicht alles ausließt; aber bytesAvailable() ist auch false, wenn man es im Anschluss ans auslesen ausfruft.
Woran kann das liegen?
Danke für eure Hilfe!
Ich habe ein Problem, dass mich bald zum verzweifeln bringt.
Mein Programm gibt output in einem CSV ähnlichen Format. Die erste Spalte ist hierbei die Zeilennummer, welche fortlaufend sind. Es können mitunter mehrere hundert Zeilen sein.
So ungefähr sieht das ganze dann aus:
1;asdjflah jölasdhkflöka;hengkehgl;gahelgaslghle
2; ajlödhlöaghl löaghalö;aöghelögh;agöjklkweghlöa
3;asdjflah jölasdhkflöka;hengkehgl;gahelgaslghle
4; ajlödhlöaghl löaghalö;aöghelögh;agöjklkweghlöa
5;asdjflah jölasdhkflöka;hengkehgl;gahelgaslghle
6; ajlödhlöaghl löaghalö;aöghelögh;agöjklkweghlöa
Ich lese aus, wenn ein readyRead()-Signal emittiert wird, zum Auslesen selbst verwende ich readAll().
Mein Problem ist, dass QProcess einfach mal ein paar hundert Zeilen verschluckt! Ich gebe den Output direkt nachdem ich ihn in in eine QString Variable eingelesen habe per qDebug aus, und die genannten Daten fehlen einfach. Manchmal ist es so, dass er das Ende des Outputs abschneidet, also die letzten Zeilen fehlen; manchmal lässt er aber auch in der Mitte irgendwo ein paar hundert Zeilen rausfallen.
In dem Fall, dass er am Ende was abschneidet habe ich gedacht, dass readAll() vllt. nicht alles ausließt; aber bytesAvailable() ist auch false, wenn man es im Anschluss ans auslesen ausfruft.
Woran kann das liegen?
Danke für eure Hilfe!