- PR -

テキストデータをバイナリデータに変換する方法

投稿者投稿内容
にいやん
会議室デビュー日: 2005/01/25
投稿数: 12
投稿日時: 2005-01-29 19:10
『テスト』の文字が入っているテキストファイルからデータを読み出し、
『テスト』の文字をバイナリデータに変換して、別のファイルを作成する
といったプログラムを作成しなくてはいけないのですが、
さっぱり検討がつきません。
サンプル等ありましたら、是非教えていただきたいのですが。
よろしくお願いいたします。
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2005-01-29 19:23
バイナリを printable-char のみを使ってテキストファイルにするというのなら理解できるけど、テキストファイルをバイナリファイルにしたい、というのはかなり意味不明です。

とりあえず、copy test.txt test.bin でいいんじゃないですか?
にいやん
会議室デビュー日: 2005/01/25
投稿数: 12
投稿日時: 2005-01-29 19:36
バイナリファイルにしたいのではなく、
データをバイナリに変換したいということです。
表現がヘタで申し訳ありません。
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2005-01-29 20:10
'0' と '1' のふたつの文字だけから構成される バイナリ(2進)表現のテキストにしたいってこと?

コード:
#include <stdio.h>

int main(int argc, char* argv[]) {
	int c, i;
	
	while((c = fgetc(stdin)) != EOF) {
		for(i = 7; i >= 0; i--) {
			fputc(((c >> i) & 0x01) + '0', stdout);
		}
	}	
	return 0;
}

にいやん
会議室デビュー日: 2005/01/25
投稿数: 12
投稿日時: 2005-01-29 20:30
数値化したデータをファイルに書き込むってことです。
(わかりますか?表現がいまいちですね)
ちなみに言語はC#です。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2005-01-29 20:38
はい、わかりにくいです。
それに気付いているならもっと分かりやすく表現して下さい。

ところでテキストファイルもバイナリエディタで開けば
数値化したデータとして見る事ができます。
というかこれがファイルの実体です。ファイルそのものにテキストもバイナリもありません。

この数値化したデータを具体的にどういうように変えたいのでしょうか?
にいやん
会議室デビュー日: 2005/01/25
投稿数: 12
投稿日時: 2005-01-29 20:56
ほんとに申し訳ないです。
DELPHIでいえば、以下の記述になります。
TF: TextFile;
F: File;

S: String;

inLoop: Integer;

byBuf: Byte;

pszChr: array[0..1] of Char;

pszWBuf: array[0..1024] of Char;
pszBuf: array[0..1024] of Char;

inWriteByte: Integer;
begin

AssignFile(TF, Edit1.Text);
AssignFile(F, Edit2.Text);
try
Reset(TF);
ReWrite(F);

while not EOF(TF) do
begin
Readln(TF, S);

ZeroMemory(@pszChr, SizeOf(pszChr));

for inLoop:=1 to Length(S) do
begin
StrPCopy(pszChr, Copy(S, inLoop, 1));

byBuf := Byte(pszChr[0]);
BlockWrite(F, byBuf, 1);
   end;

byBuf := $0D;
BlockWrite(F, byBuf, 1);
byBuf := $0A;
BlockWrite(F, byBuf, 1);

end;

finally
CloseFile(F);
CloseFile(TF);
end;

読み込んだデータを数値化し、数値そのものを
書き込むって感じです。
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2005-01-29 21:55
一番最初の発言の『テスト』を
書き込んだファイルをバイナリエディタで見たら、
どうなっていればあなたの望みどおり(やりたいこと)に
なるのかを示せば話が早いのでは。
(記入例- 数字は出たらめ 16進表記でバイナリエディタで見ているとする)
0F 35 24 56

スキルアップ/キャリアアップ(JOB@IT)