Wert für Progressbargadget
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Wert für Progressbargadget
Ob FTPProgress() auch quad Unterstützt kann ich nicht sagen, müßte mal jemand ausprobieren. Aber ansonsten verwendest Du
double in Deinem Programm, was natürlich verkehrt ist. Stell mal das ganze Programm auf quad um und Probier es aus.
Hab es beim ersten mal nicht erwähnt, weil es war ja nicht die Frage und dachte, Du kommst selber auf den Fehler.
Gruß
Thomas
double in Deinem Programm, was natürlich verkehrt ist. Stell mal das ganze Programm auf quad um und Probier es aus.
Hab es beim ersten mal nicht erwähnt, weil es war ja nicht die Frage und dachte, Du kommst selber auf den Fehler.
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 214
- Registriert: 30.03.2014 19:57
- Computerausstattung: Purebasic 5.70
- Wohnort: 18314 Löbnitz
Re: Wert für Progressbargadget
Es soll eine 10 GB Datei übertragen werden.
Für die Progressbar rechne ich den Wert vom FTPProgress() in Prozent um. Doch FTPProgress() liefert nur den korrekten Wert bis Ende von long erreicht ist, danach geht der Wert von FTPProgress ins minus. Bekomme ich vielleicht den Wert für die bereits
empfangenen Bytes(oder KB) über eine andere Möglichkeit ?
Für die Progressbar rechne ich den Wert vom FTPProgress() in Prozent um. Doch FTPProgress() liefert nur den korrekten Wert bis Ende von long erreicht ist, danach geht der Wert von FTPProgress ins minus. Bekomme ich vielleicht den Wert für die bereits
empfangenen Bytes(oder KB) über eine andere Möglichkeit ?
Purebasic 5.51
-
- Beiträge: 214
- Registriert: 30.03.2014 19:57
- Computerausstattung: Purebasic 5.70
- Wohnort: 18314 Löbnitz
Re: Wert für Progressbargadget
Hatte ich schon geändert auf long. Habe nun auf quad umgestellt, aber FTPProgress() unterstützt scheinbar kein quad nur long.ts-soft hat geschrieben: Aber ansonsten verwendest Du
double in Deinem Programm, was natürlich verkehrt ist.
Gibs noch eine andere Möglichkeit ,an den Wert für die bereits übertragenen Bytes oder kb zu gelangen ?
Purebasic 5.51
Re: Wert für Progressbargadget
Es besteht die Möglichkeit, das Long in ein Quad zu übertragen und den negativen Wert wieder zu einem positivem Werten hochzurechnen, aber dann kommst du leider immer noch nicht zu 10 GiB, sondern nur zu 3,99 GiB.
Vielleicht gibt die 64-Bit-Version von PB ein Quad-Wert zurück.
Code: Alles auswählen
#SignedLong_MaxValue = 2147483647 ; 2.147.483.647
Define.l FTPProgress = #SignedLong_MaxValue+#SignedLong_MaxValue-2 ; = 4.294.967.292
Define.q value = FTPProgress ; FTPProgress(FTP_Connection)
Select value
Case #PB_FTP_Started
Case #PB_FTP_Finished
Case #PB_FTP_Error
Default
If value < 0
value + #SignedLong_MaxValue
EndIf
EndSelect
Debug value

Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
-
- Beiträge: 214
- Registriert: 30.03.2014 19:57
- Computerausstattung: Purebasic 5.70
- Wohnort: 18314 Löbnitz
Re: Wert für Progressbargadget
Gute Idee. Ich habe das Problem nun anders gelöst.
Wenn FTPProgress( den Maximalwert von 2147483647 ereicht dann läuft er wieder rückwärts auf null
Diesen Minuswert entferne ich das minus und errechne damit den Restwert
Das ganze läuft in einer Schleife . Wenn FTPProgress(#ftp) wieder ins plus läuft wird es dann wieder zu progresswerttotal.l hinzugerechnet
Für Vorschläge, wie man das ganze vereinfachen kann wäre ich dankbar.
Wenn FTPProgress( den Maximalwert von 2147483647 ereicht dann läuft er wieder rückwärts auf null
Diesen Minuswert entferne ich das minus und errechne damit den Restwert
Code: Alles auswählen
maxwert.l = 2147483647
If Left(Str(FTPProgress(#ftp), 1)) = "-" ; Minuswert wird gesucht
istwertminus.l = FTPProgress(#ftp) ; Minuswert in Variable speichern
else
progresswerttotal.q =FTPProgress(#ftp)
Endif
istwertplus.l = Val(RemoveString(Str(istwertminus.l), "-", 1, 1)) ; Minuszeichen wird entfernt
progresswert.l= maxwert-istwertplus
progresswerttotal.q = progresswerttotal + progresswert ; Gesamtwert zur Weiterverarbeitung für Progressbar
Für Vorschläge, wie man das ganze vereinfachen kann wäre ich dankbar.
Purebasic 5.51
- HeX0R
- Beiträge: 3040
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Re: Wert für Progressbargadget
Ich würde vorschlagen das als Bug-Report, oder zumindest als Feature-Request im englischen Forum zu posten.schleicher hat geschrieben:Für Vorschläge, wie man das ganze vereinfachen kann wäre ich dankbar.
Weil meinese Erachtens sollte FTPProgress() ein Quad zurückgeben.
Nein, ich habe es eben getestet.Sicro hat geschrieben:Vielleicht gibt die 64-Bit-Version von PB ein Quad-Wert zurück.
Hatte auch die Hoffnung, dass Integer genommen wurde, is aber nicht.
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
-
- Beiträge: 214
- Registriert: 30.03.2014 19:57
- Computerausstattung: Purebasic 5.70
- Wohnort: 18314 Löbnitz
Re: Wert für Progressbargadget
Das hätte die Sache wesentlich leichter gemacht.HeX0R hat geschrieben: Weil meinese Erachtens sollte FTPProgress() ein Quad zurückgeben.
Purebasic 5.51
- Vera
- Beiträge: 928
- Registriert: 18.03.2009 14:47
- Computerausstattung: Win XP SP2, Suse 11.1
- Wohnort: Essen
Re: Wert für Progressbargadget
Idee:
könnte man bei solchen Dateigrößen nicht auf FTPProgress() verzichten und stattdessen den aktuellen FileSize(fileonhdd$) auf der HD abfragen?
könnte man bei solchen Dateigrößen nicht auf FTPProgress() verzichten und stattdessen den aktuellen FileSize(fileonhdd$) auf der HD abfragen?
°
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
<°)))o><
~~~~~~~~~
echo "Don't worry"
echo "Keep quiet"
@echo off
format forum:\
-
- Beiträge: 214
- Registriert: 30.03.2014 19:57
- Computerausstattung: Purebasic 5.70
- Wohnort: 18314 Löbnitz
Re: Wert für Progressbargadget
Die Frage ist, ob das andauernde Nachfragen nach der Größe auf der Hdd nicht zuviel CPU Power frisst, die widerum der Übertragungsgeschwindigkeit zu Lasten geht.
Ist das so oder irre ich mich ?
Ist das so oder irre ich mich ?
Purebasic 5.51
Re: Wert für Progressbargadget
Wenn du im Thread ein Delay() benutzt, dann nicht.