Wie eine Statusanzeige zu IO einbinden. Stream

February 5

Wie eine Statusanzeige zu IO einbinden. Stream

Eine Statusanzeige auf e/a-Stream zeigt den Fortschritt der Dateien hoch- bzw. runterzuladen. Ein e/a-Stream behandelt Eingabe- und Funktionalität mit Streams. Ein Stream ist eine Abstraktion, die einem Gerät wo Eingang und Ausgang darstellt werden durchgeführt. Datenströme beziehen sich auf eine physische Quelle wie Tastatur oder eine Eingabe Konsole. C++ bietet die Norm Iostream-Bibliothek, einschließlich basic Klassenvorlagen, Typen und Manipulatoren.

Anweisungen

1 Klicken Sie auf "Start", "Alle Programme" und "Visual Studio", die integrierte Entwicklungsumgebung eingeben. Wählen Sie die Programmiersprache wie Visual C++. Klicken Sie in "Form1.cs", um zur Entwurfsansicht zu wechseln. Klicken Sie auf "Toolbox" und "Button" erstellen Sie eine neue Schaltfläche "Button1."

2 Doppelklicken Sie auf das button1, und geben Sie den folgenden Code, um Informationen zur Eingabedatei zu erhalten:

using System;unter Verwendung von System.IOSystem.IO.FileInfo FileInfo = neue System.IO.FileInfo(FileTextBox.Text);

3 Lesen Sie aus Datei "c:\text1.txt" in die neue FileStream-Variable "Stream" mithilfe des folgenden Codes:

mit (System.IO.FileStream Stream = neue System.IO.FileStream ("c:\text1.txt", System.IO.FileMode.Open, System.IO.FileAccess.Read))

Die Verwendung von das ProgressChanged-Ereignis meldet den Fortschritt des Uploads. Erhalten Sie den Upload-Fortschritt mit Vairable "UploadStreamWithProgress."

{ using (StreamWithProgress uploadStreamWithProgress = new StreamWithProgress(stream)) { uploadStreamWithProgress.ProgressChanged += uploadStreamWithProgress_ProgressChanged;4

Doppelklicken Sie auf form1. Den Datei-Upload-Fortschritt über die folgenden Funktionen zu erhalten.

Definieren von Variablen BytesRead: private lange BytesRead;

Die geladenen Bytes in Variable "BytesRead" in der Funktion StreamWithProgress zu lesen

public StreamWithProgress(FileStream file) { this.file = file; length = file.Length; bytesRead = 0; if (ProgressChanged != null) ProgressChanged(this, new ProgressChangedEventArgs(bytesRead, length)); }

Berechnen Sie und zurückgeben Sie den Fortschritt in der GetProgress-Funktion hochladen:

public double GetProgress() { return ((double)bytesRead) / file.Length; }