Siehe Thread von mir, "PB dröselt Parameter von hinten auf?".
Exakt dasselbe Problem hatte ich auch; es liegt daran, dass PackFileSize() *VOR* NextPaackFile() aufgerufen wird. Beim entpacken der ersten Datei aus einem Archiv will mir die Funktin also die Größe einer Datei zurückgeben, die gar nicht ausgepackt wurde...
Durch Verwendung von edels Schreibweise wird bewirkt, dass NextPackFile() die Datei ordnungsgemäß entpackt und den Rückgabewert zur späteren Verwendung in a speichert. Da erst in der nächsten Zeile PackFileSize() aufgerufne wird, gibt dieser Befehl nun den korrekten Wert zurück, weil NextPackFile() ja auf jeden Fall vorher schon ausgeführt wurde.
Ich finde, man sollte es generell so machen, dass wenn man die Schreibweise von PureBasic4.0 nimmt, alle in einer zeile vorkommenden Befehle von links nach rechts ausgeführt werden. Hoffe, ihr wisst, was ich meine.