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-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Datei aufteilen und umbenennen 
Autor: Manfred X
Datum: 28.02.17 15:01

Das brauchst Du für die Fortschrittsanzeige nicht.

Hier eine triviale Lösung (Byte-Zählung):

  'Eine Progressbar für Prozentzählung auf die Form setzen
  Dim probar As New ProgressBar With _
     {.Parent = Me, .Minimum = 1, .Maximum = 100}
 
 
  Private Sub SplitFile()
 
     Dim basefile As String = "C:\daten\split.txt" 'zu splittendes File
 
     Dim totallength As Long = New IO.FileInfo(basefile).Length 'Gesamtlänge
 
     Dim readlength As Long = 0
     Dim linecount As Long = 0, percent As Integer = 0
 
     Dim lines As New List(Of String), line As String = ""
     Dim outpath As String = "C:\daten", outfile As String = ""
 
     Using sr As New IO.StreamReader(basefile)
        While Not sr.EndOfStream
           line = sr.ReadLine
           lines.Add(line)
 
           readlength += line.Length + 2 'CRLF
           linecount += 1
           If linecount Mod 100 = 0 Then
              'Progressbar aktualisieren
              percent = CInt(readlength * 100 / totallength)
              probar.Value = percent
              probar.Refresh()
           End If
 
           If line.StartsWith("PG_Bezeichnung".ToUpper) Then
              Dim filename As String = _
                 line.Substring(line.IndexOf("=") + 1) & ".txt"
              outfile = IO.Path.Combine(outpath, filename)
           End If
 
           If Not outfile = "" Then
              If line.StartsWith("[Hauptprogramm]".ToUpper) Then
                 lines.RemoveAt(lines.Count - 1)
                 IO.File.WriteAllLines(outfile, lines)
                 lines.Clear()
                 lines.Add(line)
                 outfile = ""
              End If
           End If
        End While
     End Using
 
     If Not lines.Count = 0 And Not outfile = "" Then
        IO.File.WriteAllLines(outfile, lines)
     End If
  End Sub
Bei mehr als 1 Million Datensätzen in der Datei, solle man als
Modulo-Teiler statt 100 besser 10000 einsetzen:
If linecount Mod 10000 = 0 then ...

Beitrag wurde zuletzt am 28.02.17 um 15:15:06 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datei aufteilen und umbenennen1.811Pokevib25.02.17 10:40
Re: Datei aufteilen und umbenennen992Manfred X25.02.17 18:46
Re: Datei aufteilen und umbenennen982Pokevib25.02.17 19:10
Re: Datei aufteilen und umbenennen995Manfred X25.02.17 19:41
Re: Datei aufteilen und umbenennen981eierlein25.02.17 20:09
Re: Datei aufteilen und umbenennen976Pokevib26.02.17 08:29
Re: Datei aufteilen und umbenennen999effeff26.02.17 12:35
Re: Datei aufteilen und umbenennen992eierlein26.02.17 13:12
Re: Datei aufteilen und umbenennen1.066Pokevib26.02.17 15:03
Re: Datei aufteilen und umbenennen962Manfred X26.02.17 16:02
Re: Datei aufteilen und umbenennen955Pokevib27.02.17 21:25
Re: Datei aufteilen und umbenennen1.169eierlein27.02.17 22:26
Re: Datei aufteilen und umbenennen978Manfred X28.02.17 00:44
Re: Datei aufteilen und umbenennen945Pokevib28.02.17 08:44
Re: Datei aufteilen und umbenennen928Manfred X28.02.17 13:14
Re: Datei aufteilen und umbenennen965Pokevib28.02.17 14:27
Re: Datei aufteilen und umbenennen927Manfred X28.02.17 15:01
Re: Datei aufteilen und umbenennen919Franki01.03.17 02:24

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