返回列表 上一主題 發帖

(已解決)麻煩幫忙

回復 6# softsadwind
格式如下
{s:11:"cat_persian";a:13:{s:10:"masterymax";s:2:"10";s:5:"sizeY";s:1:"1";s:5:"sizeX";s:1:"1";s:9:"coinYield";s:2:"90";s:7:"buyable";s:5:"false";s:4:"code";s:2:"oq";s:7:"iconurl";s:42:"assets/animals/animal_cat_persian_icon.png";s:4:"type";s:6:"animal";s:4:"name";s:11:"cat_persian";s:13:"requiredLevel";s:1:"1";s:4:"cost";s:5:"50000";s:8:"growTime";s:1:"3";s:6:"action";s:7:"harvest";}

但其中有許多筆格式不符
  1. Sub Ex()
  2.     Dim FS As Object, d As Object, i%, ii%, Ar, Ar1, Ar2
  3.     Dim f
  4.     Set FS = CreateObject("Scripting.FileSystemObject").OpenTextFile(ThisWorkbook.Path & "\units.txt", 1, -2) 'TextStream 物件->加快對檔案的順序存取。
  5.     Ar = Split(Replace(FS.READALL, Chr(10), ""), "}")  '讀取資料存入陣列 Ar
  6.     FS.Close                             ' 將檔案關閉。
  7.     [a5:iv65536] = ""
  8.     On Error GoTo aa
  9.     r = 6
  10.     For i = 0 To UBound(Ar)
  11.         Set d = CreateObject("Scripting.Dictionary")
  12.         'If InStr(Ar(i), "{") Then
  13.             Ar1 = Split(Ar(i), "{")
  14.             If i = 0 Then
  15.                 d("Name") = Split(Ar1(1), """")(1)
  16.                 Ar2 = Split(Ar1(2), """")
  17.             Else
  18.                 d("Name") = Split(Ar1(0), """")(1)
  19.                 Ar2 = Split(Ar1(1), """")
  20.             End If
  21.             For ii = 1 To UBound(Ar2) - 4 Step 4
  22.                 d(Ar2(ii)) = Ar2(ii + 2)
  23.             Next
  24.             For Each key In d
  25.                 If key = "Name" Then
  26.                     Cells(r, 1) = d(key)
  27.                 Else
  28.                     f = Application.Match(key, Rows(5), 0)
  29.                     If IsError(f) Then
  30.                         f = Range("iv5").End(xlToLeft).Column + 1
  31.                         Cells(5, f) = key
  32.                     End If
  33.                     Cells(r, f) = d(key)
  34.                 End If
  35.             Next
  36.             r = r + 1
  37.         'End If
  38.     Next
  39.     Set FS = Nothing
  40.     Set d = Nothing
  41.     Exit Sub
  42. aa:
  43.     MsgBox "陣列 Ar 第" & i & "筆資料排列異常" & Ar(i)
  44.     Resume Next
  45. End Sub
複製代碼

TOP

        靜思自在 : 【停滯不前,終無所得】人都迷於尋找奇蹟,因而停滯不前;縱使時間再多、路再長,也了無用處,終無所得。
返回列表 上一主題