![](/img/trans.png)
[英]Extract a single line of data from numerous text files and import into Excel
[英]Extract multiple lines of data from numerous text files and correlate into Excel
關於如何從以下位置修改腳本的任何建議:
要生成一個Excel工作表,該工作表的文件名位於一列(.ini文件的文件名),第二列中的緯度,第三列中的經度? 我也有一堆.ini文件,其中包含.jpg的相機參數,但需要提取Name,Lat和Long進行進一步處理。
這是.ini文件的示例:
[top_left]
lng = -80.5251854921
lat = 46.6276919869
[top_right]
lng = -80.5307483620
lat = 46.6297628116
[bottom_left]
lng = -80.5229096407
lat = 46.6307857000
[bottom_right]
lng = -80.5281836560
lat = 46.6327636148
[center]
lng = -80.5267096969
lat = 46.6302821844
[origin]
Xs = 319.50000
Ys = 239.50000
[map]
A00 = 0.0008197901
A01 = -0.0085907931
A02 = -80.5267154968
A10 = -0.0004764527
A11 = 0.0049839176
A12 = 46.6302857603
A20 = -0.0000102856
A21 = 0.0001067452
A22 = 1.0000000000
[frameTimestamp]
frameTs = 0
我嘗試使用某些代碼從一個文件夾中的多個文本文件提取數據到excel工作表中 ,但收效甚微。
這應該做您想要的-但沒有錯誤處理-它假定每個文件都按照示例中的顯示進行布局。 另外,我假設任何緯度/經度對都可以,並且您只想要其中一個。 因此,我提取了與“ top_left”關聯的那個。 同樣,所有.ini文件都位於C:Temp \\ Test目錄中,並假定您希望將數據追加到ActiveSheet的最后一行之后:
Option Explicit
Sub ExtractLatLng()
Dim MyFolder As String, MyFile As String, textline As String
Dim r As Integer, pos As Integer
MyFolder = "C:\Temp\Test\"
MyFile = dir(MyFolder & "*.ini")
r = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).row + 1
Do While MyFile <> ""
Open (MyFolder & MyFile) For Input As #1
Do Until EOF(1)
Line Input #1, textline
pos = InStr(textline, "[top_left]")
If pos = 1 Then
ActiveSheet.Cells(r, "A").Value = MyFile
Line Input #1, textline
pos = InStr(textline, "=")
ActiveSheet.Cells(r, "C").Value = Mid(textline, pos + 1)
Line Input #1, textline
pos = InStr(textline, "=")
ActiveSheet.Cells(r, "B").Value = Mid(textline, pos + 1)
r = r + 1
Exit Do
End If
Loop
Close #1
MyFile = dir()
Loop
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.