2017-04-15 11 views
0

に、スクリプトを変更する方法上の任意の提案を関連付けます.iniファイルのファイル名)、2番目の列のLatitude、3番目の列のLongitude? .jpgのカメラパラメータを含む.iniファイルもたくさんありますが、後で処理するために名前、緯度、経度を抽出する必要があります。私はほとんど成功しextract data from multiple text files in a folder into excel worksheetからのコードの一部を使用してみましたは、多くのテキストファイルからのデータの複数行を抽出し、Excel


[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 

:ここ

は、.iniファイルのサンプルです。

+0

出力はどのように見えますか? – Masoud

答えて

0

これはあなたの望むことを行うはずですが、エラー処理はありません。あなたの例で示したように各ファイルがレイアウトされていることを前提としています。また、私は緯度/経度のペアのいずれかが大丈夫であると仮定しており、それらのうちの1つだけを必要としています。したがって、私は '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