Naja, nicht wirklich eine Vereinfachung, aber zumindest fallen die Stringumwandlungen weg.schleicher hat geschrieben:Für Vorschläge, wie man das ganze vereinfachen kann wäre ich dankbar.
Code: Alles auswählen
EnableExplicit
;
#MAX_LONG = $FFFFFFFF >> 1; 2 GiB
#GIB_1 = $FFFFFFFF >> 2; 1 GiB
;
Define.l loop
Define.q result, bytes, lastBytes, rcvdBytes
;
Procedure.l FTPfunc(inc.i);Pseudo-Function
ProcedureReturn #GIB_1 * inc
EndProcedure
;
For loop = 1 To 10
result = FTPfunc(loop)
Select result
Case #PB_FTP_Started : Debug "Gestartet"
Case #PB_FTP_Error : Debug "Fehler"
Case #PB_FTP_Finished : Debug "Fertig"
Default
If (result < #PB_FTP_Finished)
bytes = (#MAX_LONG - (-result))
Else
bytes = result
EndIf
EndSelect
If (bytes > lastBytes)
rcvdBytes + (bytes - lastBytes)
Else
rcvdBytes + bytes
EndIf
lastBytes = bytes
Debug rcvdBytes
Next
;
Burstnibbler
Edith: hatte was vergessen