vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Dateien nach Stunden zählen 
Autor: Manfred X
Datum: 01.04.16 19:36

[I]Wohin soll debug.writeline die Textausgabe machen ?[/I]
Das mußt Du entscheiden.
Ich habe nur den Zugriff auf die Angaben in der "HourList" demonstriert.

Beispiel für die Ausgabe der Liste in eine Datei ....
    'Ausgabe der Stundenbezogenen Dateilisten
    Dim output As New List(Of String)
    output.Add("Pfad: " & di.FullName)
    output.Add("Datum: " & dt.Date.ToString("dd.MM.yy"))
 
    For i As Integer = 0 To 23
       output.Add(String.Empty)
       output.Add(i.ToString & " bis " & (i + 1).ToString & " Uhr")
 
       If hourlist(i).Count > 0 Then
          For k As Integer = 0 To hourlist(i).Count - 1
              output.Add(hourlist(i)(k))
          Next k
       Else
          output.Add("Keine Datei")
       End If
    Next i
 
    IO.File.WriteAllLines("C:\daten\FileTime.txt", output.ToArray)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Dateien nach Stunden zählen 
Autor: 00Tobi
Datum: 31.03.16 21:06

Hallo Zusammen,

ich habe folgendes Problem. In einem Ordner werden über das Monat verteilt mehrere tausende Dateien geschrieben.
Leider kann ich nicht genau bestimmen woher die Daten kommen. (Ist leider so Das ist aber eine andere Geschichte .... )

Würde mir jetzt gerne eine Kleines Tool basteln, bei dem ich das Datum eingeben kann und mir aufgelistet wird zu welcher Std (0 - 1 Uhr 1-2 Uhr ....) die Datei erstellt wurde.

Über diese Daten könnte ich dann ausschließen welcher Rechner es nicht ist, da ich ja weis welcher Rechner wann online ist. Ist so was mit VB möglich ? Könntet ihr mir ein paar Tips geben, welche Befehle ich benötige ?


Dim counter As  _
System.Collections.ObjectModel.ReadOnlyCollection(Of String)
        counter = My.Computer.FileSystem.GetFiles("C:\Windows")
        Label1.Text = ("number of files is " & CStr(counter.Count))
Dateien zählen funktioniert schon, aber wie bekomme ich nach Datum und Uhrzeit noch hin ?

Ciao

Beitrag wurde zuletzt am 31.03.16 um 21:19:20 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateien nach Stunden zählen 
Autor: Manfred X
Datum: 31.03.16 21:32

Die System.IO.FileInfo-Klasse ermöglicht den Zugriff auf die Zeitangaben,
die für eine Datei im Dateisystem eingetragen sind (Creation, LastWrite).
Dim di As New IO.DirectoryInfo("C:\daten")
For Each fi As IO.FileInfo In di.GetFiles
    Dim hour As Integer = fi.CreationTime.Hour
    'Liste ergänzen
Next fi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateien nach Stunden zählen 
Autor: 00Tobi
Datum: 31.03.16 21:57

bin verwirrt ...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateien nach Stunden zählen 
Autor: Manfred X
Datum: 31.03.16 22:25

Vielleicht wird es so deutlicher ...

Private Sub DemoFileTime()
 
   'Eine 23er Stunden-Liste, bei der jedes Element 
   'eine Stringliste für die Dateinamen ist
   Dim hourlist As New List(Of List(Of String))
   'Listenelemente erstellen 
   For i As Integer = 0 To 23
       hourlist.Add(New List(Of String))
   Next i
 
   Dim dt As Date = CDate("28.5.2013") 'kritisches Datum
 
   Dim di As New IO.DirectoryInfo("C:\daten") 'kritischer Ordner
 
   For Each fi As IO.FileInfo In di.GetFiles
       Dim ct As Date = fi.CreationTime
       'Datum filtern
       If ct.Date = dt.Date Then
          'Zeitregister (Stunden 0-0:59:59, 1 - 1:59:59, ....)
          hourlist(ct.Hour).Add(fi.Name)
       End If
   Next fi
 
   'Ausgabe der Stundenbezogenen Dateilisten
   For i As Integer = 0 To 23
      Debug.WriteLine(String.Empty)
      Debug.WriteLine(i.ToString & " bis " & (i + 1).ToString)
      For k As Integer = 0 To hourlist(i).Count - 1
         Debug.WriteLine(hourlist(i)(k))
      Next k
   Next i
End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateien nach Stunden zählen 
Autor: effeff
Datum: 01.04.16 10:21

In den Dateieigenschaften unter "Sicherheit", "Erweitert", "Besitzer" wird nichts angezeigt?

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateien nach Stunden zählen 
Autor: 00Tobi
Datum: 01.04.16 17:20

effeff schrieb:
Zitat:

In den Dateieigenschaften unter Sicherheit,Erweitert, Besitzer wird nichts angezeigt?


Leider wird nichts angezeigt, würde das ganze erleichtern ....



 'Ausgabe der Stundenbezogenen Dateilisten
   For i As Integer = 0 To 23
      Debug.WriteLine(String.Empty)
      Debug.WriteLine(i.ToString & " bis " & (i + 1).ToString)
      For k As Integer = 0 To hourlist(i).Count - 1
         Debug.WriteLine(hourlist(i)(k))
      Next k
   Next i
Habe debug.writeine in consolewriteline geändert.
wohin soll debug.writeline die Textausgabe machen ?

Chiao
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateien nach Stunden zählen 
Autor: 00Tobi
Datum: 01.04.16 20:26

Super, dankeschön. Macht genau das was es soll. Klasse

Ich hoffe ich komme drauf wo die Daten herkommen.

Nur der neugier halber. Wie würde ich die Ausgabe in eine Textbox bekommen ?

Chiao
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Listenelemente in eine Textbox eintragen 
Autor: Manfred X
Datum: 01.04.16 21:05

Sei "TextBox1" eine WinForms.Textbox,
deren MultiLine-Eigenschaft auf true gestellt ist:
Textbox1.Text = String.Join(Environment.NewLine, output.ToArray)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Listenelemente in eine Textbox eintragen 
Autor: Toggo
Datum: 12.04.16 15:46

Hallo Zusammen,

ich kann das Beispiel auch gut brauchen.
Gibt es eine Möglichkeit nicht den Dateinamen hinzuschreiben, sondern
Zwischen 0-1 Uhr 5 Dateien vorhanden ?

Gruß
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Anzahl der Dateien pro Stunden-Intervall 
Autor: Manfred X
Datum: 12.04.16 18:59

Hallo!

Die Zahl der Dateien, die innerhalb eines Stunden-Intervalls
angelegt worden sind, ergibt sich z.B. aus der Länge der Liste
(Count-Eigenschaft):
    'Ausgabe der Stundenbezogenen Dateilisten
    Dim output As New List(Of String)
    Dim pl As String
 
    output.Add("Pfad: " & di.FullName)
    output.Add("Datum: " & dt.Date.ToString("dd.MM.yy"))
 
    For i As Integer = 0 To 23
       output.Add(String.Empty)
       output.Add(i.ToString & " bis " & (i + 1).ToString & " Uhr")
 
       If hourlist(i).Count > 0 Then
          pl = ""
          If hourlist(i).Count > 1 Then pl = "en"
          'Anzahl der Dateien
          output.Add(hourlist(i).Count.ToString & " Datei" & pl)
          'Liste der Dateinamen
          'For k As Integer = 0 To hourlist(i).Count - 1
          '   output.Add(hourlist(i)(k))
          'Next k
       Else
          output.Add("Keine Datei")
       End If
    Next i
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Anzahl der Dateien pro Stunden-Intervall 
Autor: Toggo
Datum: 13.04.16 20:46

Hallo, nochmal ich.

Ich sehe das man mit & in VB Zeichenketten verbinden kann.
Aber wie schaffe ich es das hinter 0 bis 1 Uhr Keine Datei steht ?

Bis jetzt sind das bei mir zwei zeilen
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Anzahl der Dateien pro Stunden-Intervall 
Autor: Manfred X
Datum: 14.04.16 06:10

Korrekt. Durch den &-Operator (bzw. &=-Operator) kann der Inhalt
von zwei Zeichenketten-Variablen zusammengefasst werden.

Allerdings empfiehlt sich diese Operation nur
- wenn man "wenige" Verknüpfungen durchführt,
- wenn die verknüpften Zeichenketten relativ kurz sind.

Das liegt daran, daß der Inhalt von String-Variablen bei
VB.Net (Framework) "unveränderlich" ist, d.h. es müssen bei jeder
String-Operation die vorhandenen Zeichenfolgen(teile) kopiert werden.
(Ein direktes Anhängen im Speicher - wie bei VB6 - ist nicht möglich.)

Aus diesem Grund gibt es die Klasse "System.Text.Stringbuilder".
Sie ermöglicht es, Zeichenfolgen effizient wie eine Zeichen-Liste zu
verwalten (Methoden für Anhängen, Einfügen, Ausschneiden, Ersetzen).

Im Beispiel werden die numerischen Teile der Zeichenfolgen
durch "String.Format" formatiert.
   'Ausgabe der Stundenbezogenen Dateilisten
   Dim output As New List(Of String)
   Dim outline As New System.Text.StringBuilder 'Ausgabezeile bauen
 
   output.Add("Pfad: " & di.FullName)
   output.Add("Datum: " & dt.Date.ToString("dd.MM.yy"))
 
   For i As Integer = 0 To 23      
      outline.Clear() 'Ausgabezeile leeren
      'Uhrzeit-Bereich formatiert ausgeben
      outline.Append(String.Format("{0,2} bis {1,2} Uhr: ", i, i + 1))
 
      'Anzahl der Dateien anhängen 
      Select Case hourlist(i).Count
         Case 0
            outline.Append("Keine Dateien")
         Case 1
            outline.Append(" eine Datei")
         Case Else
            outline.Append(String.Format("{0,5} Dateien", hourlist(i).Count))
      End Select
 
      'aktuelle Ausgabezeile in einen String wandeln 
      'und in der Ausgabezeilen-Liste als neue Zeile anhängen
      output.Add(outline.ToString)
   Next i
Und hier noch die &=-Variante:
   'Ausgabe der Stundenbezogenen Dateilisten
   Dim output As New List(Of String)
   output.Add("Pfad: " & di.FullName)
   output.Add("Datum: " & dt.Date.ToString("dd.MM.yy"))
 
   For i As Integer = 0 To 23      
      output.Add(String.Format("{0,2} bis {1,2} Uhr: ", i, i + 1))
 
      'Die aktuelle Zeile steht am Index: output.count-1 
      'Dort wird angehängt
      Select Case hourlist(i).Count
         Case 0
            output(output.Count - 1) &= "Keine Dateien"
         Case 1
            output(output.Count - 1) &= " eine Datei"
         Case Else
            output(output.Count - 1) &= _
              String.Format("{0,5} Dateien", hourlist(i).Count)
      End Select
   Next i


Beitrag wurde zuletzt am 14.04.16 um 06:23:15 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateien nach Stunden zählen 
Autor: Toggo
Datum: 14.04.16 21:16

Nochmal ich ;)

nach 8h lesen raucht der Kopf. Viel gelesen und viel vergessen
Erst jetzt wird mir einigermaßen Bewusst, wie komplex das ganze ist.
Jetzt würde ich nochmal euren Rat brauchen. Obwohl ManfredX wohl
der einzige ist der behilflich ist.

Wie kann ich unten die gesamte Anzahl der Dateien anzeigen,
und stündlich die aufaddierte Zeit.

Mir helfen die Beispiele hier am besten, da mir die Fachbegriffe nicht immer etwas sagen

Tschüss
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateien nach Stunden zählen 
Autor: Manfred X
Datum: 15.04.16 09:03

Hallo!

Sorry, aber ich bin es bloß wieder.

Acht Stunden lesen bringt natürlich nichts.
Du mußt ein bestimmtes Kapitel durcharbeiten und
dann geeignete Beispiele für das Gelesene ausprobieren,
mit dem Code experimentieren und zur Gedächtnisstütze
Kommentare in den Beispiel-Code eintragen.

Deine Frage habe ich nicht verstanden: [I]stündlich aufaddierte Zeit[/I]
Willst Du eine kumulative Häufigkeitsverteilung ausgeben?
In dem Fall mußt Du die Zahl der Dateien über die Stunden summieren.
   'Kummulative Ausgabe der Datei-Häufigkeit      
   Dim sum As Integer = 0 'Summationsvariable
 
   output.Add("Pfad: " & di.FullName)
   output.Add("Datum: " & dt.Date.ToString("dd.MM.yy"))
 
   For i As Integer = 0 To 23
      sum += hourlist(i).Count 'Summation
      'Ausgabezeile als String listen
      output.Add _
        (String.Format("Bis {0,2} Uhr: {1,4} Dateien", i + 1, sum))
   Next i
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateien nach Stunden zählen 
Autor: Toggo
Datum: 15.04.16 14:36

Hallo,

genau so habe ich das gemeinst (Stunden summieren)
Wollte es halt noch hinter die erste Zahl.
Da währe wohl ne Listview die bessere alternative zur Textbox.

Am Anfang will man ja immer zuviel. Ich spiel ja viel rum, aber leider meistens nicht mit dem gewünschten Ergebnis. (frust)
Manfred, auf wieviel Jahre VB blickst du zurück ?

Gruß
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateien nach Stunden zählen 
Autor: Manfred X
Datum: 16.04.16 05:59

In Jahren mißt man den Kenntnisstand nur,
wenn man professionell als Informatiker arbeiten will.
Da kommen vier Jahre Grundausbildung (Studium)
und zwei bis drei Jahre spezialisierte Fachausbildung
(oder "training on the job") zusammen.

Die Philosophie, die hinter Visual Basic steht,
soll es eigentlich jedem ermöglichen, mit relativ wenig
Lernaufwand, grundlegende Windows-Anwendungen für
eigene Zwecke selbst zu erstellen.
(Jeder kennt diese Buch-Titel: VB in 21 Tagen ...)

Durch die Integration der Sprache "VB" in das "Net-Framework" treffen
Einsteiger aber sofort auf eine Programmierumgebung, die
professionellen Anforderungen gerecht wird - und deren "sinnvolle"
Nutzung deshalb einen gewissen Kenntnis-Hintergrund voraussetzt.

Für Anfänger ist es schwer, herauszufinden, welche Klassen,
Vorgehensweisen usw. für ihre Zwecke tatsächlich nützlich
und wie deren Methoden einzusetzen sind.
Die MSDN-Dokumentation ist dafür meist zu kurz und lückenhaft.

Will man mit VB.Net mehr als "kurze" Tools erstellen, kommt man
als Neuling ohne intensive zwei-monatige Einarbeitung (Übung) nicht
wirklich weiter (Einsteigerbuch, Volkshochschulkurs).
Durch "Herumspielen" begreift man die im Framework angelegten
Grund-Konzepte nicht oder schlimmer: falsch.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dateien nach Stunden zählen 
Autor: Toggo
Datum: 16.04.16 08:15

Hallo,

danke Manfred für dein Einschätzung.
Wie du schon schreibst...
Für Anfänger ist es schwer, herauszufinden, welche Klassen,
Vorgehensweisen usw. für ihre Zwecke tatsächlich nützlich
und wie deren Methoden einzusetzen sind.

Natürlich habe ich es nach mehreren Stunden nicht geschafft
den Wert (Stunden summieren) hinter den gezählten Wert zu bekommen.
Geschweige denn das ganze in eine Listview zu bekommen.
Würde mich freuen wenn mir noch jemand ein Beispiel zeigen könnete.

Gruß
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Ausgabe in ein Listview-Control 
Autor: Manfred X
Datum: 16.04.16 12:00

Hallo!

Für die Verwendung des ListView-Control haben wir hier
im Forum viele Beispiele.
With listview1
   .View = View.Details 'Sicht einstellen
   .Font = New Font("Courier New", 10) 'feste Zeichenbreite
   .Items.Clear(): .Columns.Clear() 
 
   'Spalten neu einrichten
   With .Columns
      .Add("z", "Zeit") : .Add("Häufigk.") : .Add("kumulativ")
 
      .Item("z").Width = 250 'Header-Zugriff per Key
      For i As Integer = 1 To 2
         With .Item(i)
            .TextAlign = HorizontalAlignment.Right
            .Width = 100
         End With
      Next i
   End With
 
   'ListViewItems erstellen und füllen
   With .Items
      sum = 0 'Integer-Variable
      For i As Integer = 0 To 23
         'Neues Item anfügen
         Dim lvi As ListViewItem = _
         .Add(String.Format("Dateien von {0,2} bis {1,2} Uhr: ", i, i + 1))
 
         'SubItems füllen 
         lvi.SubItems.Add(hourlist(i).Count.ToString)
         sum += hourlist(i).Count 'Summation
         lvi.SubItems.Add(sum.ToString)
       Next i
   End With
End With
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Ausgabe in ein Listview-Control 
Autor: Dittmar
Datum: 15.09.17 19:55

Hallo Forum,

vor ein paar Wochen habe ich diesen Thread hier gefunden, und nutze das ganze täglich
Nun meine Frage:
Kann ich das ganze auch in einen Graph ähnlich wie hier darstellen lassen ?

https://picload.org/view/dgdrglda/graph.jpg.html

Leider ist das ganze absoluten Neuland. Und ich liebe mein Excel
Aber wenn alles in einer Anwendung gehen würde, wäre das schon sehr toll ....
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Erstellzeiten der Dateien als Chart 
Autor: Manfred X
Datum: 15.09.17 22:11

Hallo!

Vielleicht irgend so was ....
Projektverweis (Net) auf "System.Windows.Forms.Datavisualization" ist erforderlich.
Public Class frmFileHourCounter
 
    'Das Chart-Control
    Dim cht As New System.Windows.Forms.DataVisualization.Charting.Chart With
        {.Parent = Me, .Size = New Size(600, 500)}
 
 
    Private Sub frmFileHourCounter_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
 
        Me.Size = New Size(610, 520)
 
        Dim folder As String = "C:\output" 'Ordner mit den Dateien
        Dim criticalday As Date = New Date(2015, 5, 25) 'Erstell-Datum
 
        'Stunden-Verteilung der Datei-Erstellzeiten am kritischen Tag
        Dim dt As DataTable = GetFileHourCounter(folder, criticalday)
 
        'Einrichten des Chart
        With cht
            .ChartAreas.Add("Base")
            .Series.Add("MyChart")
 
            With .Series("MyChart")
                .ChartArea = "Base"
                .ChartType = _
                   DataVisualization.Charting.SeriesChartType.Line
                .Color = Color.Blue
                .BorderWidth = 3
                .XValueMember = dt.Columns(0).ColumnName
                .YValueMembers = dt.Columns(1).ColumnName
            End With
 
            With .ChartAreas("Base").AxisX
                .Interval = 1
                .Maximum = 24
                .Minimum = 1
 
                .LabelStyle.Angle = 45
 
                .Title = "Erstellzeit der Dateien in " & folder & _
                    " am " & criticalday.Date.ToString("dd.MM.yyyy")
                .TitleFont = New Font("Arial", 12, FontStyle.Bold)
            End With
 
            With .ChartAreas("Base").AxisY
                .Title = "Anzahl der Dateien"
                .IntervalType = _
                DataVisualization.Charting.DateTimeIntervalType.Auto
            End With
 
            .DataSource = dt 'Datenbindung herstellen
        End With
 
    End Sub
 
 
 
    Public Function GetFileHourCounter(ByVal folder As String, _
                                       ByVal criticalday As Date, _
                    Optional ByVal IncludeSubDirs As Boolean = False, _
                    Optional ByVal searchpattern As String = "*.*") As DataTable
 
        If Not IO.Directory.Exists(folder) Then Return Nothing
 
        Dim so As IO.SearchOption = IO.SearchOption.TopDirectoryOnly
        If IncludeSubDirs Then so = IO.SearchOption.AllDirectories
 
        Dim dt As New DataTable
        'Datatable einrichten (pro Zeile eine Stunde)
        dt.Columns.Add("Uhrzeit") 
        dt.Columns.Add("Datei Anzahl", GetType(Integer))
        For i As Integer = 0 To 23
            dt.Rows.Add(i.ToString("00") & " bis " & _
                       (i + 1).ToString("00") & " Uhr", 0)
        Next i
 
        Dim ct As Date, hr, c As Integer
        For Each file As String In IO.Directory.GetFiles _
            (folder, searchpattern, so)
 
            ct = New IO.FileInfo(file).CreationTime
 
            If ct.Date = criticalday.Date Then
                'Stunde ermitteln und eintragen
                hr = ct.Hour
                c = CInt(dt.Rows(hr)("Datei Anzahl"))
                c += 1
                dt.Rows(hr)("Datei Anzahl") = c
            End If
        Next file
 
        Return dt
    End Function
 
End Class


Beitrag wurde zuletzt am 15.09.17 um 22:16:02 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Erstellzeiten der Dateien als Chart 
Autor: Dittmar
Datum: 16.09.17 09:30

Super, Danke.

Aber wie kann ganze updaten bzw. refresh en, wenn das Datum oder der Ordner geändert wird ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Erstellzeiten der Dateien als Chart 
Autor: Manfred X
Datum: 16.09.17 10:58

Ich nehme an, Du meinst die Eingabe der Angaben für den Chart
über die Benutzeroberfläche.
(Bei Änderungen innerhalb des Dateisystems kann der "FileSystemWatcher"
zusätzlich eingesetzt werden, um den Chart zu aktualisieren.)

Etwa so ... (Routine "GetFileHourCounter" wie oben)
Public Class frmFileHourCounter2
 
    'Für Wahl des Datums
    Dim dtpCriticalDay As New DateTimePicker With _
      {.Parent = Me, .MinDate = CDate("1.1.2001")}
 
    'Für Wahl des Ordners
    Dim WithEvents btnFolder As New Button With _
        {.Parent = Me, .Text = "Ordner wählen", .Width = 150, .Top = 30}
    Dim lblfolder As New Label With _
        {.Parent = Me, .Width = 150, .Left = 160, .Top = 30}
    Dim fbd As New FolderBrowserDialog With _
        {.Description = "Ordner für Erstellzeiten-Chart"}
 
    Dim cht As New System.Windows.Forms.DataVisualization.Charting.Chart _
       With {.Parent = Me, .Size = New Size(600, 500), .Top = 60}
 
 
 
    Private Sub frmFileHourCounter_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
 
        Me.Size = New Size(610, 580)        
    End Sub
 
 
    Private Sub btnFolder_Click(sender As Object, _
        e As System.EventArgs) Handles btnFolder.Click
 
        With fbd
            If .ShowDialog = _
            Windows.Forms.DialogResult.Cancel Then Exit Sub
 
            lblfolder.Text = .SelectedPath
 
            Dim dt As DataTable = _
                GetFileHourCounter(.SelectedPath, dtpCriticalDay.Value)
 
            ShowChart(dt, .SelectedPath, dtpCriticalDay.Value.Date)
        End With
    End Sub
 
 
    Private Sub ShowChart(ByVal dt As DataTable, _
                          folder As String, criticalday As Date)
 
        With cht
            .ChartAreas.Clear()
            .Series.Clear()
            .DataSource = Nothing
 
            If dt Is Nothing Then
                MsgBox("Keine Erstellzeiten-Tabelle für den Chart") 
                Exit Sub
            End If
 
            .ChartAreas.Add("Base")
            .Series.Add("MySeries")
            With .Series("MySeries")
                .ChartArea = "Base"
                .ChartType = DataVisualization.Charting.SeriesChartType.Line
                .Color = Color.Blue
                .BorderWidth = 3
                .XValueMember = dt.Columns(0).ColumnName
                .YValueMembers = dt.Columns(1).ColumnName
            End With
            With .ChartAreas("Base").AxisX
                .Interval = 1
                .Maximum = 24
                .Minimum = 1
                .LabelStyle.Angle = 45
                .Title = "Erstellzeit der Dateien in " & folder & _
                    " am " & criticalday.Date.ToString("dd.MM.yyyy")
                .TitleFont = New Font("Arial", 12, FontStyle.Bold)
            End With
            With .ChartAreas("Base").AxisY
                .Title = "Anzahl der Dateien"
                .IntervalType = _
                DataVisualization.Charting.DateTimeIntervalType.Auto
            End With
 
            .DataSource = dt
        End With
    End Sub
 
End Class


Beitrag wurde zuletzt am 16.09.17 um 11:20:06 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Erstellzeiten der Dateien als Chart 
Autor: Dittmar
Datum: 16.09.17 18:04

Danke Manfred,

eine Frage habe ich aber noch.
Kann man Chart im Designer hinzufügen ?
Und wie kann man die Backcolor vom Chart ändern ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Erstellzeiten der Dateien als Chart 
Autor: Manfred X
Datum: 16.09.17 18:58

Das Chartcontrol hat ein Problem mit der Toolbox,
abhängig von der Visual Studio Version.
Es gibt Workarounds (z.B. Ctrl-S). Mußt mal eine
Suchmaschine anwerfen.

cht.ChartAreas("Base").BackColor = Color.Beige
cht.BackColor = Color.Yellow
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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