2017-09-29 8 views
3

16 진 코드를 갖는 .log 파일로 오는 일부 데이터를 기록하기 위해 한나 센서 계측기를 사용하고 있습니다. 그런 다음이 데이터를 Excel 형식 (숫자 & 문자 & 특수 문자)으로 변환하는 한나 소프트웨어 (장비와 함께 제공)를 사용합니다. 나는 그것을 어떻게하는지 알고 싶다. 가능하다면 소프트웨어없이 스스로 할 수 있을까?헥사 파일을 엑셀 파일로 변환

이 파일은 다음과 같습니다, 그것의 확장은 .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

입니까? 그 모습에서 하드웨어 질문을하고 있습니다. 센서가 X를 측정하는 방법,이 정보가 저장되는 방법 및 .log에서 .xlsx로 변환되는 방법 –

+0

정보는이 소프트웨어를 사용하여 엑셀 테이블로 변환 된 .log 파일로 저장됩니다. .log가 .xlsx로 어떻게 변환되는지 모르겠습니다. 나는 그것을 찾아 내고 그것을 자신을 능가하는 것으로 바꾸려고 노력하고있다. –

답변

1

같은 시도 : 프로세스 중 다음 .LOG 파일을 가져 와서 포함

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

을 모든 셀을 루핑하여 개별적으로 변환하거나 모든 데이터 블록을 변형 배열에 저장하고 변환 한 다음 변환 된 val을 반환합니다. 워크 시트에 추가하십시오. 후자의 변환 방법이 권장됩니다. 프로그래밍 질문은 무엇

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