vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Progressbar 
Autor: Thuser
Datum: 25.02.07 11:09

Hallo zusammen,

ich habe Probleme mit der Darstellung einer ProgressBar. Ich möchte per FTP eine Datei auf einem Server laden und der Fortschritt soll mir angezeigt werden. Ich habe dafür zwei Klassen. Eine FTP-Klasse und eine Klasse die die Daten aufbereitet und sie an die FTP-Klasse übergibt.

Die Anzeige des Progress soll dann in einem Thread laufen.

Die Klasse zum aufbereiten in gekürzter Form:
Private Sub CopyWebsite()
 
	ThreadStartRefreshFileSize = New Thread(AddressOf StartUploadTimer)
	ThreadStartRefreshFileSize.SetApartmentState(ApartmentState.STA)
	ThreadStartRefreshFileSize.IsBackground = True
	ThreadStartRefreshFileSize.Start()
 
	For I As Integer = 0 To filesDetail.Count - 1
 
		fileData = My.Computer.FileSystem.GetFileInfo(filesDetail.Item(I).ToString)
		FtpConnect.Upload(filesDetail.Item(I).ToString, ftpDetail & "/" & _
  fileData.Name)
 
	Next
 
	ThreadStartRefreshFileSize.Abort()
 
End Sub
 
Private Sub StartUploadTimer()
	Dim Wert As Integer = 0
 
	Do
		Wert = FtpConnect.MessageString
		Me.SetText("Progress: " & Wert.ToString)
	Loop Until ProgressEnd
 
End Sub
 
Private Sub SetText(ByVal [text] As String)
 
	If Me.Label2.InvokeRequired Then
		Dim d As New SetTextCallback(AddressOf SetText)
		Me.Invoke(d, New Object() {[text]})
	Else
		Me.Label2.Text = [text]
		TextNeu = [text]
	End If
 
End Sub
Die Klasse FTP in gekürzter Form:
Public Overridable Property MessageString() As Integer
	Get
		Return FileSizeProgress
	End Get
	Set(ByVal Value As Integer)
		FileSizeProgress += Value
	End Set
End Property
 
Public Function Upload(ByVal fi As FileInfo, Optional ByVal targetFilename As _
  String = "") As Boolean
	Using rs As Stream = ftp.GetRequestStream
 
	Do
		dataRead = fs.Read(content, 0, BufferSize)
		rs.Write(content, 0, dataRead)
		MessageString = dataRead
' Wenn ich hier den Inhalt von MessageString  in eine Datei schreibe ist alles 
' OK
	Loop Until dataRead < BufferSize
 
	rs.Close()
	End Using
End Function
Ich habe es hier erst einmal in ein Label ausgeben lassen, also wieviel Bytes übertragen werden. Er zeigt mir aber immer nur die Gesamtbytes an, also nicht den aktuellen Status. Ich habe mal in der Klasse FTP den Vorgang in eine Datei schreiben lassen und dort ist es ok, also der Fortschritt wird in die Datei geschrieben. In der Klasse wo die Daten aufbereitet werden sehe ich nur (wenn ich es auch in eine Datei schreibe) ein paar hundert mal die kompletten Bytes der Datei....


Was mache ich nur falsch??? Warum aktualisiert er nicht den Wert, sondern nimmt nur den Endwert der Dateigröße???

Ich hoffe ihr könnt mir helfen...
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Progressbar834Thuser25.02.07 11:09
Re: Progressbar417Visual Basic Fan25.02.07 17:22
Re: Progressbar475Thuser26.02.07 09:07

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel