>> ' This is the standard >> ' total 4696 >> ' drw-rw-rw- 1 user group 0 Feb 6 15:46 . >> ' drw-rw-rw- 1 user group 0 Feb 6 15:46 .. >> ' -rw-rw-rw- 1 user group 4825 May 3 2010 Account.png >> ' -rw-rw-rw- 1 user group 5242 May 3 2010 Administration.png >> ' -rw-rw-rw- 1 user group 4117 Apr 17 2011 Agent.png >> ' -rw-rw-rw- 1 user group 1402 Dec 30 2005 AmazonCA.gif >> ' -rw-rw-r-- 1 wliclus weblogic 308121 Jun 1 2011 tlv_01_jackk_2011615315_1185655_001_23327701.zip >> >> ' This is also another format we have to support >> ' -r-xr-xr-x 1 owner group 78145990 Nov 4 2011 101.zip >> ' -r-xr-xr-x 1 owner group 35492 Apr 14 2011 20110414.40E >> ' -r-xr-xr-x 1 owner group 33583 Apr 14 2011 20110414.421 >> ' -r-xr-xr-x 1 owner group 40815 Apr 14 2011 20110414.483 >> ' -r-xr-xr-x 1 owner group 24836 Apr 14 2011 20110414.ARC >> ' -r-xr-xr-x 1 owner group 4737 May 5 2011 4A16PBE1.txt >> ' -r-xr-xr-x 1 owner group 4737 Jan 18 13:50 4A17A7B1.txt >>>>
>> ' If this is a file >> If lcLine.StartsWith("-") Then >> >> ' Get the character at position 42 >> lcCharacter = Mid(lcLine, 42, 1) >> >> ' If this is a space >> If lcCharacter = " " Then >> lcFile = Mid(lcLine, 56) >> lnSize = Val(Mid(lcLine, 34, 8)) >> lcDate = Mid(lcLine, 43, 12) >> Else >> lcFile = Mid(lcLine, 60) >> lnSize = Val(Mid(lcLine, 34, 14)) >> lcDate = Mid(lcLine, 47, 12) >> End If >>>>
Imports System.Collections.Generic >Imports System.Linq > >Namespace ConsoleApplication5 > Class Program > Private Shared Sub Main(args As String()) > Dim typeA As New List(Of String)() From { _ > " drw-rw-rw- 1 user group 0 Feb 6 15:46 .", _ > " drw-rw-rw- 1 user group 0 Feb 6 15:46 ..", _ > " -rw-rw-rw- 1 user group 4825 May 3 2010 Account.png", _ > " -rw-rw-rw- 1 user group 5242 May 3 2010 Administration.png", _ > " -rw-rw-rw- 1 user group 4117 Apr 17 2011 Agent.png", _ > " -rw-rw-rw- 1 user group 1402 Dec 30 2005 AmazonCA.gif", _ > " -rw-rw-r-- 1 wliclus weblogic 308121 Jun 1 2011 tlv_01_jackk_2011615315_1185655_001_23327701.zip", _ > " -r-xr-xr-x 1 owner group 78145990 Nov 4 2011 101.zip", _ > " -r-xr-xr-x 1 owner group 35492 Apr 14 2011 20110414.40E", _ > " -r-xr-xr-x 1 owner group 33583 Apr 14 2011 20110414.421", _ > " -r-xr-xr-x 1 owner group 40815 Apr 14 2011 20110414.483", _ > " -r-xr-xr-x 1 owner group 24836 Apr 14 2011 20110414.ARC", _ > " -r-xr-xr-x 1 owner group 4737 May 5 2011 4A16PBE1.txt", _ > " -r-xr-xr-x 1 owner group 4737 Jan 18 13:50 4A17A7B1.txt" _ > } > > Dim result As IEnumerable(Of FTPInfo) = typeA.[Select](Function(x) > Dim line As String() = DirectCast(x, String).Split(DirectCast(Nothing, Char()), StringSplitOptions.RemoveEmptyEntries) > Return New FTPInfo() With { _ > Key .File = line(8), _ > Key .Size = line(4), _ > Key .Month = line(5), _ > Key .Day = line(6), _ > Key .YearOrTime = line(7) _ > } > >End Function) > End Sub > End Class > Public Structure FTPInfo > Public File As String > Public Size As String > Public Month As String > Public Day As String > Public YearOrTime As String > End Structure >End NamespaceDisclaimer: VB auto-converted from C#.....
string pattern = @"^(?<Permissions>\S+)\s+(?<Links>\d+)\s+(?<User>\w+)\s+(?<Group>\w+)\s+(?<FileSize>\d+)\s+(?<Month>\w+)\s+(?<Day>\d+)\s+((?<Year>\d{4})|(?<Time>\d+:\d+(:\d+)?))\s+(?<FileName>.+)$";It now parses the last line correctly
string[] lines = { @"drw-rw-rw- 1 user group 0 Feb 6 15:46 .", @"drw-rw-rw- 1 user group 0 Feb 6 15:46 ..", @"-rw-rw-rw- 1 user group 4825 May 3 2010 Account.png", @"-rw-rw-rw- 1 user group 5242 May 3 2010 Administration.png", @"-rw-rw-rw- 1 user group 4117 Apr 17 2011 Agent.png", @"-rw-rw-rw- 1 user group 1402 Dec 30 2005 AmazonCA.gif", @"-rw-rw-r-- 1 wliclus weblogic 308121 Jun 1 2011 tlv_01_jackk_2011615315_1185655_001_23327701.zip", @"-r-xr-xr-x 1 owner group 78145990 Nov 4 2011 101.zip", @"-r-xr-xr-x 1 owner group 35492 Apr 14 2011 20110414.40E", @"-r-xr-xr-x 1 owner group 33583 Apr 14 2011 20110414.421", @"-r-xr-xr-x 1 owner group 40815 Apr 14 2011 20110414.483", @"-r-xr-xr-x 1 owner group 24836 Apr 14 2011 20110414.ARC", @"-r-xr-xr-x 1 owner group 4737 May 5 2011 4A16PBE1.txt", @"-r-xr-xr-x 1 owner group 4737 Jan 18 13:50 4A17A7B1.txt", @"dr-xr-xr-x 1 owner group 0 Jan 18 13:50 Program Files or something else" };How would yo do that with string split ? (gdr)