
C#でテキストデータの内容を読み込みbinファイルに書き込むプログラムを作成したいと思っています
DialogResult d = of.ShowDialog();でテキストのパスを取得し(d)
System.IO.FileStream fil = new System.IO.FileStream( @"z:\test.bin",System.IO.FileMode.Create, System.IO.FileAccess.Write);で書き込むbinファイルを新規作成(上書き)しています
テキストデータは16進数で記入してありますがバイナリモードでの書き込みを教えてください。
できれば、プログラムの工程の説明もお願いします。

A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
うん。
余計判らなくなりましたな。
というか、ファイルについての貴方の理解が解らない。
>画像左の文字のほうに
一般的なバイナリエディタなら、その左側に16進数で表記されているのがファイルの内容です。
右側になんか見えるのは、ファイルの各1バイトを対応するASCIIコードの文字を表示しているだけで、『ファイル内の別の内容』ではありません。
ちなみにテキストファイルと言っているのも人間側の都合なだけで、OSからしたらバイナリデータの塊に過ぎません。
# その前提の上ですが、所謂テキストファイルを読み込むのにBinaryReaderクラスは使いません。
No.4
- 回答日時:
>画像左の文字のほうに書き込んでしまうため左のバイナリのほうに書き込めるようにしたいと思っています
??
よけい混乱しましたが
先に返事していた通り
ffという文字を読込んで66, 66
というバイナリデータではなく
FFというバイナリデータにしたいということでしたら
https://dobon.net/vb/dotnet/programing/converthe …
このページのようにテキストデータを1バイトの整数に変換してから
ファイルに書き込めばいいと思います
No.3
- 回答日時:
コードを画像で貼るんじゃなくて、テキストで貼って欲しいところですけどね…。
>DialogResult d = of.ShowDialog();でテキストのパスを取得し(d)
OpenFileDialogクラスで取得…ですよね?
>C#でテキストデータの内容を読み込みbinファイルに書き込むプログラムを作成したいと思っています
StreamReaderで入力のテキストファイルをオープンして、
StreamReader.ReadLine()で1行読み込み。
読み込んだ文字列をByte.Parse()で「16進数文字列から数値」に変換し、FileStream.WriteByte()で書き出す。
ってのを繰り返していけばいいんじゃないですか?
Byte.Parse()の結果をByte[]の配列に格納していって、最後にFileStream.Write()で書き込む…でもいいでしょうけど。
# Byte[]のサイズが確定できるなら。
テキストファイルをBinaryReader経由にする必要性がまったく不明ですが。
BinaryReader.ReadChar()で1文字ずつ改行まで読み込んで…とか、
「1行読み込む」のに手間を掛けたいのであれば問題ありませんけども。
# StreamReader.ReadLine()で読み込んだ方が楽ですけどね。
# 車輪の再発明は時と場合によってはいいんじゃないでしょうか。
No.2
- 回答日時:
>バイナリーの文字列のほうに出力されてしまいました。
ごめんなさい、言っている意味が分かりません
バイナリーはバイナリーだし、文字列は文字列です
最終的に出力したいのは
FF, AA, 99, 00, 54 ~...
というバイナリファイルということですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルの一部分を抽...
-
ATTファイルってどうやって開け...
-
ストリームについて。
-
VB.NET テキストファイルにデー...
-
ハングル語のテキスト変換で困...
-
テキストファイル(英語&日本...
-
[VB.NET] 処理の高速化を行いた...
-
Excel VBAが徐々に遅くなる
-
テキストファイルの中身をコピ...
-
ASPでiniファイルの読み書きを行う
-
C#テキストファイルから1バイト...
-
ファイルの入出力でのテキスト ...
-
テキストファイル内容の、16進...
-
VB(VBA)で、バイナリデータを使...
-
accessでクエリをExcelにエクス...
-
CSVファイルの時刻の形式について
-
CSV形式で保存するとファイ...
-
【Excel VBA】取り込んだファイ...
-
0バイトのテキストファイル
-
main関数のコマンドライン引数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
テキストファイルの一部分を抽...
-
テキストファイル固定長データ...
-
テキストファイルの特定行の削...
-
Excel VBAが徐々に遅くなる
-
VB(VBA)で、バイナリデータを使...
-
既存のテキストファイルを開く方法
-
WORDのVBAで差し込み印刷時、デ...
-
ファイル変換
-
C言語のソースからコメントを抜...
-
Zbarというソフトについて
-
C#テキストファイルから1バイト...
-
C言語でテキストファイルをバイ...
-
テキストファイル内容の、16進...
-
VBA。開いているテキストファイ...
-
VBSでテキストファイルの2行目...
-
[VB.NET] 処理の高速化を行いた...
-
StreamReaderで読み込んだファ...
-
ストリームについて。
-
テキストファイル(英語&日本...
おすすめ情報
そのサイトを参考に組んでみたのですがバイナリーの文字列のほうに出力されてしまいました。
文字列ではないほうの出力方法をお願いします。
そうです
画像では見にくかったですね。
画像左の文字のほうに書き込んでしまうため左のバイナリのほうに書き込めるようにしたいと思っています。テキストから文字データを読み込み .binのファイルに書き込みたいです。宜しくお願いします
private void button1_Click(object sender, EventArgs e)
OpenFileDialog of = new OpenFileDialog();
DialogResult d = of.ShowDialog();
if (d == DialogResult.OK)
string file = of.FileName;
textBox1.Text += file;
FileStream fs = new FileStream(file,FileMode.Open,FileAccess.Read, FileShare.None);
BinaryReader br = new BinaryReader(fs);
System.IO.FileStream fil = new System.IO.FileStream