安裝好 Julia後第一個作業就是練習檔案實作,我用TSK的 log 檔案來練習。
TSK的 log 檔案是一個2進制檔,每筆紀錄用 0x00 當作結束,如下圖:
接下來就是開啟檔案的寫法
fin = open(filename)
fin 是一個用於輸入的檔案串流,當不使用的時候可以用 close(fin)來關閉它。
接著用 read指令將 fin 指定的檔案讀取進來,轉成字串型態,放入 str 變數:
str = read(fin, String)
由於剛剛講過,log檔案每筆資料是以 0x00結束,因此要將字串中的 0x00 換成 \n (換行)
str2 = replace(str, r"\0" => "\n")
然後將最後的結果str2印出
println(str2)
程式碼如下:
fin = open("LOG_1.DAT")
org_s = read(fin, String)
aft_s = replace(org_s, r"\0" => "\n")
println(aft_s)
執行結果:
因為這樣每次只能開啟一個固定檔案名稱,下面就用 ARGS 外部指定檔案名稱當作參數
傳入程式,用一個迴圈去遍歷ARGS陣列,代碼如下:
for i in ARGS
...
...
end
實作的程式很簡單就原本的程式外再加上迴圈
for i in ARGS
println(i)
fin = open(i)
org_s = read(fin, String)
aft_s = replace(org_s, r"\0" => "\n")
println(aft_s)
end
這樣我就可以同時輸入多個檔案依序讀取並印出:
julia prog.jl LOG_1 LOG_2 LOG_3 . . .
執行結果如下:
因為檔案很大可以用重新導向到一個文字檔:
julia prog.jl LOG_1 LOG_2 LOG_3 . . . > text_filename
程式碼可以參考:
https://glot.io/snippets/fha91jgr01
間單吧!
沒有留言:
張貼留言