Flüssige Anzeige bei ProgressBarGadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Flüssige Anzeige bei ProgressBarGadget

Beitrag von Joel »

Hallo,

Wie schaffen es eigentlich Manche Programme bei Zb. einer Reparierung der Registry, die Progressbar immer in der gleichen Geschwindigkeit schnell laufen zu lassen und schaffen es, das der Prozess dann immer fertig ist, wenn die Progressbar bei 100% ist. Also wenn z.B. ein Programm die Registry untersucht, weiß es ja nicht, ob da genau 100 Fehlerhafte Schlüssel sind die es geheben muss, und somit bei jedem Schlüssel eine Status weiter macht oder ob es 300.000 Fehlerhafte Schlüssel sind.

Mein Frage, wie schaffen die Programmierer bei Installationen, Oder anderen Sachen die Statusanzeige immer so Flüssig und genau verlaufen zu lassen.
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

du musst die Gesammt Zeit vorher abschätzen / hochrechnen, je genauer dest do besser.

dann kannst du auch eine Aussagen darüber treffen wie viel schritte / Schleife oder Sekunde weiten gerückt werden müssen.

das das SAU schwer ist, sieht man an WIN selber, wenn man sich die Kopierbalken anguckt, wo es dann auch mal sein kann das er von 4restmin auf 5 springt ^^, das liegt daran das Datein unterschiedlich groß sind, und verschiedene Dinge gemacht werden.

beoi der Reg. ist es ja relativ einfach hoch zu rechnen weil da ja eh fast alles gleich ist...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Bei Vista brauch er manchmal bestimmt eine Minute bis er die Zeit für Daten weniger als einen GigaByte kalkuliert hat, und dann fängt er erst an zu kopieren oder verschieben. :mrgreen:
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Naja, sau schwer ist jetzt was übertrieben, denn perfekte Zeitangabe ...
das glaub ich nicht.

Beim kopieren, löschen und verschieben von Dateien sieht man ja, wie
perfekt die Zeitangabe ist. Es wird wohl einfach die Anzahl der Dateien
genommen, eventuell auch die Gesamtdatenmenge, und dann einfach hoch
gerechnet. Es sind also nichts weiter als Prognosen wie beim
Wetter. :wink:

Reparieren der Registry ... was bedeutet das eigentlich?
Wie viel einträge existieren lässt sich sicher zu Programmstart ermitteln.
Somist muss man einfach nur schauen, wie viele hab ich in welcher Zeit
geschaft und wie viele kommen noch.

Und erlich gesagt ... der Kosten/ Nutzenfaktor wäre hier auch viel zu
gering, wenn es mehr als nur eine einfache Prognose wäre. :wink:

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Joel
Beiträge: 851
Registriert: 21.04.2006 19:22

Beitrag von Joel »

Ok, gute Idee,

Bei Programmstart lasse ich das Programm den PC einfach in 3 Stufen einteilen

1. Stufe: Pentium 3 Win. 98 (sehr langsam)

2. Stufe: Core 2 Duo Win XP (schnell)

3. Stufe: Core 2 Duo Win. Vista (spezialstufe :mrgreen: )

Und dann mach ich einfach 3 Zeitabschätzungen

Aber ob ich wirlich den aufwand beitreibe, weiß ich nicht.

Bei Install Shield Z.B. sieht man ja, das da keiner Lust hat das Abzuschätzen, da war das schon 5 mal bei 100% bis da mal "Dateien werden kopiert" steht und dann nochmal 3 mal bis 100% :D und dann kommt erst Fertigstellen.
----------------------------------------------------------

PB 5.20 Beta 10 | Windows 7
Benutzeravatar
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

Beitrag von ts-soft »

Du teilst alles in Happen, für Dateien hab ich hier mal ein Beispiel
ausgearbeitet, mußte mal suchen.
Bei Registrierung unterteilste z.B. nach Hauptschlüsseln o. ä. und gibts jedem
Abschnitt einen Prozentwert. Die Geschwindigkeit des PCs ist dabei
unwichtig.
Über eine globale Variable erfährt das Timer-Callback, wieweit der
Fortschritt sein soll.

Ist eigentlich nicht so besonders Aufwendig. Ein bissel Tricksen, damit der
Anwender immer das Gefühl hat, es passiert noch was und gut ist :wink:
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.
Bild
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Also ich würde das schon am Code festmachen wenn ich einen solchen Laufbalken benutze. Es gibt nichts schlimmeres als ein solchen Balken der zuende gelaufen ist und das Progie braucht aber noch ein paar Minuten. Da trommeln viele nervös auf der Tastatur rum und denken an Absturz.

Zu irgendeinen Zeitpunkt muß es doch absehbar sein wie viele (meist Schleifen) noch zu bearbeiten sind um den Balken zu steuern?
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Riacon
Beiträge: 61
Registriert: 21.01.2008 09:40

Beitrag von Riacon »

das kann man doch hochrechnen. hat man nach einer sec. 1% der arbeit erledigt, braucht man für den rest noch 99 sec.. bei der zweiten sec. macht man eine neue hochrechnung, usw.. am anfang "springen" die schätzungen noch etwas, werden dann aber immer genauer
pb 4.51 win7 64
Antworten