0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

16進数ダンプを、各種進数変換し、ファイルに追加する【前段】

Posted at

【前回】ファイルの16進数ダンプをCSVファイルに保存したので、今回はそれを各種進数変換してファイルに保存するための前段階。

記述場所.ps1
    #2桁表示にする。空白なら無しにする。
    foreach-object{
        ('{0:x2}'-f$_).replace(' ',",")
    }|

    #今回は、
    #ここに
    #記述していく。

    #ファイルに追加する
    add-content $str
    #>

そもそも16進数から2進数表記にしたり、10進数表記にすると文字数が増えてファイルサイズも増えるので、余計なデータを削除してから進数変換したい。例えばヘッダー部に年月日時分秒などの実際のデータと関係ない情報が書き込まれていた場合スキップして読み込めばよいのだが、ここではそれを除いたデータ部だけを一旦配列に代入したい。

記述内容.ps1
    #カンマ区切るにしたものをわざわざ配列に変換している、ここでカンマ区切りは失われる
    $okk=$ok -split ","

    #ヘッダー部10バイトを除き新しい配列に代入する場合
    $Hexdata=$okk[10..($okk.length - 1)]
    
    #SetValueのために配列を宣言する
    $valdata=1..1000*$gyousuu #バイナリから読むバイト数は500だが進数変換後は1000要素に増える場合

ここで【SetValue】が出てきたが、空の配列を作成する方法だと配列に配列を結合する事になり、【SetValue】よりもかなり遅い。

ここで【SetValue】が出てきたが.ps1
    #空の配列を宣言する
    $data=@()
    $data=$data+$Hexdata[$i+1]#配列に配列を結合は$Hexdata.SetValueよりもかなり遅い。

次回はこの【SetValue】を使って実際にデータを追加していく。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?