我需要找到最後一次出現的特定字段。我嘗試了不同的方法,但無濟於事。Linq to text選擇最後的
這是我現在擁有的。它儘可能地發揮作用,但沒有使用Select子句。 Select子句會導致查詢崩潰。
Dim Qry = From lines In File.ReadAllLines(curMonth)
Let Data = lines.Split(" ")
Let LogDate = Data(0)
Let Time = Data(1)
Let DataType = Data(2)
Let DutyStatus = Data(3)
Let Memo = lines.Split("/")
Let Location = Memo(0)
Let LocationTag = Memo(1)
Let CoDriver = Memo(2)
Let DriverNumber = Memo(3)
Let Status = Memo(5)
Where DataType = "35"
For Each lines In Qry
Debug.Print(lines.LogDate & ", " & lines.Time & ", " & lines.DutyStatus & ", " & lines.DataType _
& ", " & lines.LocationTag & ", " & lines.CoDriver & ", " & lines.Status)
Next
感謝
下面是一些額外的信息。 樣本數據:
20130801 00:00 26 X /DRIVER/'Don Hall'/'1622'/290/'3.5.1.08'/
20130801 00:00 24 W /RULE//CAN2007/13.0/0.0/14.0/70.0/7.0/0/0/1/
20130801 00:00 31 C /POWER UNIT/'Tractor'/'8536'/1/''/'PY7341'/1374680419/''/''/''/''/''/''/''/''/0/''/'ON'/''/'Single'/
20130801 00:00 35 C /CODRIVER/'Margaret Hall'/'1623'/''/1/1365556442/
20130801 00:00 30 C /MOTOR CARRIER/'K-DAC Enterprises'/'3025 Sandhills RD., Baden, ON, N3A 3B8'/'3025 Sandhills RD., Baden, ON, N3A 3B8'/''/1/'1622'/'Don Hall'/1328079183/''/
20130802 00:00 03 X /MILES VEHICLE/94.0/1596267.0/1596361.0/2/
20130802 00:00 58 A /PREX/1//SCHED1/1//VCF/1//VMINOR/0//VMAJOR/0//POWERODOM/'1596267'//TOWEDODOM/'1596267'//TIME/'14:45'//LOCATION INSP/'Langley BC'/
20130802 00:00 04 X /MILES DRIVING/1596267.0/0.0/0.0/0.0/0.0/0.0/0.0/1596361.0/94.0/0/2/0.0/94.0/0.0/
20130802 00:00 25 X /PRINT/'20130803 01:23'/1/0/
20130802 12:45 32 X /TOWED UNIT/'Trailer'/'53566'/1/''/'K8601J'/1375453962/''/''/''/''/''/''/''/''/0/''/'ON'/''/'Single'/
這個數據建立,直到月底另一個文件時開始。 (每個記錄的日期開始這個窗口換行的。)
樣品從LINQ查詢需要:
20131021, 11:30, X, 35, CODRIVER, 'Margaret Hall', 0
我希望這有助於你明白我什麼了。
顯示你的輸入是怎樣的,你的輸出應該如何。 – MarcinJuraszek
'數據'和'備忘錄'將共享您正在閱讀的每一行的一些數據。另外,這將在開始解析文本之前將整個文件加載到內存中(我假設它是文本)。與嘗試使用LINQ進行讀取和解析相比,實現文本解析有更簡單的方法。 –
謝謝。如何向此主題添加更多信息?我只是花了幾分鐘的時間纔回復,只是爲了發現我的評論很長。另外,當我按下Enter鍵並按下Ctrl鍵時,我的評論被提交,而不是向下移動一行。再次感謝。 – Don6558