| |
VB.NET - Ein- und UmsteigerText in Textdatei nach Teilstring sortieren | | | Autor: swirfel | Datum: 24.11.17 13:00 |
| Hallo,
ich hab hier eine Texdatei mit Einträgen die eine Uhrzeit beinhalten.
Jetzt sollte ich die Zeilen in der Datei so sortieren daß der Inhalt nach dem zweiten Block (im Beispiel ist es eine Uhrzeit z.B: 13:40) sortiert
zurückgeschrieben wird.
Beispiel:
Textdatei vor der Sortierung:
C213 13:40 Afjghfdkjghdsfkjgh
C213 20:00 Testtermin 2
C213 15:00 Testtermin
Textdatei nach der Sortierung:
C213 13:40 Afjghfdkjghdsfkjgh
C213 15:00 Testtermin
C213 20:00 Testtermin 2
hat jemand eine Idee?
Vielen Dank vorab
swirfel | |
Re: Text in Textdatei nach Teilstring sortieren | | | Autor: Manfred X | Datum: 24.11.17 14:44 |
| Vielleicht durch ein SortedDictionary ??
Private Sub timeaftertime()
Dim lines As New _
System.Collections.Generic.SortedDictionary(Of Date, String)
Using sr As New IO.StreamReader("C:\Daten\Times.txt")
Dim line$, parts$()
While Not sr.EndOfStream
line = sr.ReadLine
parts = line.Split(" "c)
If parts.Length > 1 Then
'Alternative (result: Date) - aber nicht zur Geisterstunde!
'If Date.TryParse(parts(1), result) Then
' lines.Add(result, line)
'End If
parts = parts(1).Split(":"c)
If parts.Length > 1 Then
lines.Add _
(New Date(1, 1, 1, CInt(parts(0)), CInt(parts(1)), 0), _
line)
End If
End If
End While
End Using
Using sw As New IO.StreamWriter("C:\Daten\times_sort.txt")
For Each line As KeyValuePair(Of Date, String) In lines
sw.WriteLine(line.Value)
Next
End Using
End Sub
Beitrag wurde zuletzt am 24.11.17 um 14:56:12 editiert. | |
SubstringComparer | | | Autor: Manfred X | Datum: 25.11.17 07:21 |
| Private Class SubstringComparer
Implements System.Collections.Generic.IComparer(Of String)
Dim _splitchar As Char
Dim _blockindex As Integer
Public Sub New(SplitChar As Char, Blockindex As Integer)
_splitchar = SplitChar
_blockindex = Blockindex
End Sub
Public Function Compare(x As String, y As String) As Integer _
Implements System.Collections.Generic.IComparer(Of String).Compare
Dim x1 As String = x.Split(_splitchar)(_blockindex)
Dim y1 As String = y.Split(_splitchar)(_blockindex)
Return x1.CompareTo(y1)
End Function
End Class Anwendung
Dim lines() As String = IO.File.ReadAllLines("C:\daten\times.txt")
Array.Sort(lines, New SubstringComparer(" "c, 1))
IO.File.WriteAllLines("C:\daten\times_sort.txt", lines) | |
| 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 |
|
|
sevWizard für VB5/6
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|