2017-09-29 1 views
3

Ich verwende ein Hanna-Sensor-Instrument, um einige Daten aufzuzeichnen, die als .log-Dateien mit Hex-Code kommen. Dann verwende ich Hanna-Software (kam mit dem Instrument), die diese Daten in Excel-Format konvertiert (Zahlen & Zeichen & Sonderzeichen). Ich möchte wissen, wie es geht, und wenn möglich, mache ich es selbst ohne die Software?Hex-Datei in Excel-Datei konvertieren

Die Datei sieht wie folgt aus, und seine Ausdehnung ist .log

4d65 7465 720a 3230 3137 3039 3139 0000 
c1fb 5321 ffff 01fc 1fc8 ffff f4ff f92d 
0dc3 58ff 4a00 0000 0000 735a 0081 6101 
a242 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 003d 3950 82cc 
0940 08b4 3088 c2fb 5321 ffff 01fc 1fc8 
ffff f4ff 0b2e 0dae 58ff 4a00 0000 0000 
a85a 00a8 6101 1143 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 
. 
. 
. 
continued 
+0

Was ist Ihre Programmierung Frage? Vom Aussehen her stellen Sie eine Hardware-Frage. Wie misst der Sensor X, wie wird diese Information gespeichert und wie wird sie von .log in .xlsx konvertiert? –

+0

Die Informationen werden als .log-Datei gespeichert, die dann mit dieser Software in Excel-Tabelle konvertiert wird. Ich weiß nicht, wie es .log in .xlsx konvertiert. Ich versuche es herauszufinden und zu konvertieren, um mich selbst zu übertreffen. –

Antwort

1

Versuchen Sie so etwas wie:

Sub JustOneFile() 
    Dim s As String, i As Long 

    i = 1 
    Close #1 
    Open "C:\TestFolder\james.log" For Input As #1 

    Do Until EOF(1) 
     Line Input #1, s 
     Cells(i, 1) = s 
     i = i + 1 
    Loop 

    Close #1 

    Columns("A:A").TextToColumns Destination:=Range("B1"), DataType:=xlFixedWidth, _ 
     FieldInfo:=Array(Array(0, 2), Array(4, 2), Array(9, 2), Array(14, 2), Array(19, 2), _ 
     Array(24, 2), Array(29, 2), Array(34, 2)), TrailingMinusNumbers:=True 
End Sub 

enter image description here

0

Der Prozess der .LOG-Datei beinhaltet das Importieren und dann entweder Durchschleifen aller Zellen und Umwandeln dieser einzeln oder Speichern des gesamten Datenblocks in einem Variantenarray, Konvertieren und Zurückgeben des konvertierten Werts zum Arbeitsblatt. Die letztere Methode der Umwandlung wird empfohlen.

Option Explicit 

Sub wqewqw() 
    Dim hxwb As Workbook 
    Dim i As Long, j As Long, vals As Variant 

    Workbooks.OpenText Filename:="%USERPROFILE%\Documents\hex_2_excel.log", _ 
     Origin:=437, StartRow:=1, DataType:=xlFixedWidth, TrailingMinusNumbers:=True, _ 
     FieldInfo:=Array(Array(0, 2), Array(4, 2), Array(9, 2), Array(14, 2), _ 
         Array(19, 2), Array(24, 2), Array(29, 2), Array(34, 2)) 
    With ActiveWorkbook 
     With .Worksheets(1) 
      vals = .Cells(1, "A").CurrentRegion.Cells 
      For i = LBound(vals, 1) To UBound(vals, 1) 
       For j = LBound(vals, 2) To UBound(vals, 2) 
        vals(i, j) = Application.Hex2Dec(vals(i, j)) 
       Next j 
      Next i 
      With .Cells(1, "A").Resize(UBound(vals, 1), UBound(vals, 2)) 
       .NumberFormat = "General" 
       .Value = vals 
      End With 
     End With 
    End With 

End Sub 

enter image description here