Progressbar einrichten?

T

thomas38

Hallo,

ich programmiere mir gerade eine Gui zu einen Konsolenprogramm.(genauer gesagt ist es rtmpdump, mit den man ein RTMP-Stream herunterladen kann) Soweit habe ich alles mit den Parametern. Nun will ich aber noch eine Progressbar haben, um den Status zu sehen.(von den Download) Aber wie richte ich die Progressbar ein damit sie richtig funktioniert?
Die Konsolenanwendung zeigt den STatus nach diesen Muster:(aktualisiert etwa jede Sekunde)
1243 KB <3,8%>

Wie ist der Code für die Progressbar?

lg thomas38
 
Falls du die Ausgabe als String bekommst, solltest du folgendes tun,

Code:
Public Function Fortschritt(Input As String) As Double
Dim Data() As String = split(Input,"<")
Data(1)=replace(Data(1),"%>","")
Data(1)=replace(Data(1),",",".")
Return Data(1)
End Function

MyProgressbar.Value=Int(Fortschritt("1243 KB <3,8%>"))*MyProgressbar.MaxValue

Den Aufruf der letzten Zeile musst du dann nur noch an ein geeignetes Ereignis hängen, damit er ausgeführt wird. Wenn keines zur Verfügung steht, nimm einen Timer.

Gruß Rene
 
Danke Rene,

leider funktioniert der Code nicht so richtig. Ich bekomme die Ausgabe als String von der rtmpdump.exe, die ich per Button über Shell gestartet habe.

lg thomas38
 
Vielleicht, kannst du etwas genauer erklären, was nicht geht, hatte den Code selbst nicht getestet, sondern nur formuliert.

Rene
 
Also: Zur Vorgeschichte:
Ich habe die rtmpdump.exe mit
Shell("rtmpdump.exe")
aufgerufen und habe eine Progressbar.(Progressbar1)
Ich habe überhaupt keine Ahnung wie ich das machen sollte. rtmpdump.exe zeigt den Fortschritt nach folgenden Muster an:
1685 KB <9,7%>
Nun soll das in die Progressbar. Bitte einen vollständigen, funktionierenden Code angeben.(ist mir egal wie)

@Rene42:
"Den Aufruf der letzten Zeile musst du dann nur noch an ein geeignetes Ereignis hängen, damit er ausgeführt wird. Wenn keines zur Verfügung steht, nimm einen Timer."
Hauptsache es geht, ist mir egal wie. Kannst du mir bitte erklären wie ich das mit den Timer mache?

Ergänzung: Wenn ich den Code einfüge, bekomme ich hier ein Fehler angezeigt: *MyProgressbar.MaxValue

Wenn ich es lösche, steht die Progressbar automatisch in der Mitte fest und bewegt sich nicht(steht immer bei 50%)
 
Hi Thomas,

so hab es nun selber auch mal getestet und sorry hab mich ein wenig geirrt. Folgende Schritte führe bitte durch:

1. Fürge auf deinem Hauptformular einen Timer hinzu. (Findest du unter der Rubrik Komponenten)

2. Ändere den Namen des Timers in TiDownload.

3. Füge diese Funktion ins Formular ein!
Code:
    Public Function Fortschritt(ByVal Input As String) As Double
        Dim Data() As String = split(Input, "<")
        Data(1) = replace(Data(1), "%>", "")
        Return Data(1)
    End Function

4.Doppelklicke auf das Symbol des Timers, du findest es unter deinem Form. Nun öffnet sich die Codeeingabe für den Timer, kopiere dort folgende Zeile hinein:
Code:
 ProgressBar1.Value = Int(Fortschritt("1243 KB <2,8%>") * ProgressBar1.Maximum / 100)

5. Für diesen Ausdruck "1243 KB <2,8%>" musst du die Variabel einsetzen, welche den Fortschritt enthält.

6. Setze die Eigenschaft "Enabled" des Timers auf True, und die Interval Eigenschaft auf 1000.

Gruß Rene
 
Kein Problem. Gelegentliche Problemlösung hält fit.:)

Du sagtest das Programm gibt die Fortschrittsinformation in folgender Form aus:

"1243 KB <2,8%>",

dies tut es doch sicher in einer Variabel oder? Diese müsstest du dann dort einsetzen.

Gruß Rene
 
@AW: Progressbar einrichten?
Kein Problem. Gelegentliche Problemlösung hält fit.

Du sagtest das Programm gibt die Fortschrittsinformation in folgender Form aus:

"1243 KB <2,8%>",

dies tut es doch sicher in einer Variabel oder? Diese müsstest du dann dort einsetzen.

Wie gesagt ich hab das Programm nicht programmiert, lediglich eine Gui(ist ein Konsolenprogramm).

Es zeigt es nach diesen Muster an: "1243 KB <2,8%>" , aber wie bekomme ich das in eine Progressbar? Ich weiß auch nicht ob das ein Variable ist, bzw. ich wüsste nicht, wie ich sie aus einen externen Programm(rtmpdump.exe), was dazu ein Konsolenprogramm ist definiere.

lg thomas38
 
Wenn du keine Ahnung hast wie du die Inormationen von dme Konsolenprogramm bekommst, muss ich dir leider sagen, dass es schwierig bis unmöglich sein wird.
 
Zurück