私は、メッセージの暗号化と復号化のために作ったツールを作った。私が軍隊などのために働いているわけではないので、私はちょうどコンセプトに興味を持っています。BinaryReaderとBinaryWriter for dynamic short array
各キャラクターが自分のバイナリフォーマットに変換されます。各文字は16ビット、またはshort
に拡張されています。これらの短い整数のそれぞれは、単一の配列に格納されます。
私の目標は、この配列をバイナリでファイルに書き込んで、それを配列に読み戻すことです。私はそれがしたいようにそれが動作していないので、
//This is the array the encrypted characters are stored in.
short[] binaryStr = new short[32767];
//...
private void butSelInput_Click(object sender, EventArgs e)
{
dialogImportMsg.ShowDialog();
}
private void dialogImportMsg_FileOk(object sender, CancelEventArgs e)
{
using (BinaryReader reader = new BinaryReader(new FileStream(dialogImportMsg.FileName, FileMode.Open)))
{
for (short x = 0; x < (short)reader.BaseStream.Length; x++)
{
binaryStr[x] = reader.ReadInt16();
}
}
}
private void butExport_Click(object sender, EventArgs e)
{
dialogExportMsg.ShowDialog();
}
private void dialogExportMsg_FileOk(object sender, CancelEventArgs e)
{
using (BinaryWriter writer = new BinaryWriter(new FileStream(dialogExportMsg.FileName, FileMode.OpenOrCreate)))
{
for (int x = 0; x < binaryStr.Length; x++)
{
//if(binaryStr[x]
writer.Write(BitConverter.GetBytes(binaryStr[x]));
}
}
}
はもちろん、私が間違ってそれについてつもりです:ここで
は、私が始めたものです。作者は動作しているかもしれませんが、65534バイトの配列全体を書き込みます。私はそれが格納されている文字(最後の非ゼロ文字までのすべて)を書き込むだけです。それから、読者はそれに対応する必要があります。ファイルから文字を読み込んで、書き出し時とまったく同じように配列に入れます。
質問にはどうすればいいですか?
あなたは 'if(binaryStr [x]) 'で何かしようとしていましたが、うまくいきませんでしたか? – niksofteng
私は早くループを終了しようとしていた...ちょうどそれについて行くべきか分からなかった。 –
はい、それであなたはどんな問題に直面しましたか? – niksofteng