1

TextBox1からの形式のデータがあります

00 00 00 4E FF 53 4D 42 25 00 00 00 00 18 01 28  ...N.SMB%......(
00 00 00 00 00 00 00 00 00 00 00 00 00 08 12 8B  ................
01 08 7E 31 11 00 00 05 00 00 00 00 00 00 00 02  ..~1............

結果のTextBox2でこのように変更しようとしました

...N.SMB%......(
................
..~1............

関数*を試しました。削除しますが、最初の行だけが削除されますが、2番目の行などは削除されません。誰か助けてもらえますか?

私はこのコードを使用します

string test = rtText1.Text;
rtText2.Text = test.Remove(0, 48);

そして、この結果rtText2

...N.SMB%......(
00 00 00 00 00 00 00 00 00 00 00 00 00 08 12 8B  ................
01 08 7E 31 11 00 00 05 00 00 00 00 00 00 00 02  ..~1............

コマンド「test.Remove(0、48);」を各行で実行するにはどうすればよいですか?または別の機能はありますか?

4

2 に答える 2

1

投稿した内容に基づいて必要なものを正確に言うのは難しいですが、ここでは正規表現がうまく機能する可能性があります。

TextBox2.Text = System.Text.RegularExpressions.Regex.Replace(
                    TextBox1.Text, 
                    @"^.{49}", 
                    "", 
                    RegexOptions.Multiline );

これにより、各行の最初の49文字が空の文字列に置き換えられます。

于 2012-10-24T19:21:56.520 に答える
0

右側にある文字列の16進表現を削除しようとしているように見えます。

これは私のためのトリックをしました:

// Initial data
string Data = @"00 00 00 4E FF 53 4D 42 25 00 00 00 00 18 01 28  ...N.SMB%......(
00 00 00 00 00 00 00 00 00 00 00 00 00 08 12 8B  ................
01 08 7E 31 11 00 00 05 00 00 00 00 00 00 00 02  ..~1............";
// An array containing each line of data
string[] lines = Data.Split('\n');
Data = "";
// Loop for each line, removing each "byte" + it's space, plus the trailing space
for (int i = 0; i < lines.Length; i++)
{
    Data += lines[i].Remove(0, (3 * 16) + 1);
    if (i != lines.Length - 1)
        Data += "\r\n";
}
Console.Write(Data);

そしてここに出力があります:

...N.SMB%......(
................
..~1............

ideoneリンク

于 2012-10-24T19:35:19.893 に答える