私はTCPソケットからいくつかのデータを取得しようとしていて、ファイルに書き出しています。TCPソケットのデータクリーンアップのためのテキスト出力
私はデータをうまく取り出すことができますが、私はそれを "浄化する"必要があります。
私が受け取るデータには、レポートの先頭と各レコードの間のマークを付けるための制御コードがあります。また、CRLFコードの間にNULL文字があるようです。マイデータエディタ(私は値をマスクしてきました)で、次のようになります
:
#########- # L#########L ##############L LLLLLL LLLLLLLL #,###.## ##/##/## ##/##/## #
#########- # L#########L ##############L LLLL LL LLLLLLL ###,###.## ##/##/## ##/##/## ######
#########- # L#########L ##############L LLLLLLL ##,###.## ##/##/## ##/##/## ######
#########- # L#########L ##############L LLLLLL LLLLLLLL #,###.## ##/##/## ##/##/## ######
#########- # L#########L ##############L LLL LLLL LLLLLL LLLLL #,###.## ##/##/## ##/##/## ######
#########- # L#########L ##############L LLLLLLL LLLLLLL LLLLLL LLLLL #,###.## ##/##/## ##/##/## ######
#########- # L#########L ##############L LLLLLL LLLLL LLLLLL LLL #,###.## ##/##/## ##/##/## ######
*#########- # L#########L ##############L LLLLLL LLLLL LLLLLL LLL #,###.## ##/##/## ##/##/## ######
#########- # L#########L ##############L LLLLLLLLLLL LLLLLL LLLLL #,###.## ##/##/## ##/##/## ######
#########- # L#########L ##############L LLLLLL LLLLL LLLLLL LLL #,###.## ##/##/## ##/##/## ######
#########- # L#########L ##############L LLLL LLL LLLL ###.## ##/##/## ##/##/## ######
#########- # L#########L ##############L LLLLLLL L LLLLLL LLL ##,###.## ##/##/## ##/##/## ######
######-## L#########L ##############L LLLL LLLLLLLL ##,###.## ##/##/## ##/##/## ######
######-## L#########L ##############L LLLLL LLLLLLLLLL ##,###.## ##/##/## ##/##/## ######
######-## L#########L ##############L LLLL LLL ##,###.## ##/##/## ##/##/## ######
これは大丈夫だと思う私は(終わり)を取り除くことができない余分な改行があると期待して、そして、行末は、これは私が私がどこに取得しています方法ですHEXエディタ
00 20 00 0D 00 0D 00 0A 00
でこのように見えます。
$new = $outputBuffer.Replace('[^\p{L}\p{Nd}]', '')
$str = $new.split("`n")
$myArray = @()
foreach ($line in $str) {
$item = $line.trim([char]0x0003,[char]0x0002,[char]0x0001,[char]0x0000)
if ($item -like "Out of*") {break}
if ($item -ne "") {
$myArray += $item
}
}
$myArray | Out-File test.aud
「Out of *」ブレークは、私が気にするデータの終わりを示すため、ループを終了させる場所です。アレイに行を追加するときの「トリム」は、レポートの開始/終了を示す制御コードを処理しますが、NULLは処理しません。
私はこれを数時間試してみましたが、これらの行末を修正する方法を見つけることができません。
はありがとうございました
データがマスクされていないと、これははるかに簡単に答えることができます。もう少し役に立つものを投稿する方法はありますか?理想的には、実行しているコードをテストできるほどのデータが必要です。 –
これは、監査データのチェックであり、したがって機密性が高いことを除いて、私はより良い例を絶対に投稿します。私はそれを解決する方法を見つけました。私も同様に投稿しました。私は良い方法があると確信しています.. – hallert
あなたはそれがうまくいっている –