痔になりやすい生活習慣とは?

bainaryファイルをASCIIファイルに変換したいと考えています。ツールがあると思うのですが、それを教えてください。よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

参考URLの物なんかがあります。



参考URL:http://www.vector.co.jp/soft/win95/util/se280432 …
    • good
    • 0
この回答へのお礼

ありがとうございます。本件は、小生のミスということで一件落着しました。でも色々勉強になりました。ありがとうございました。

お礼日時:2005/10/15 14:09

> このファイルは元々はUNIXから持ってきたファイルのようです。



納得です。
改行コードだけの問題であればワードパッドも対応しているはずですので、#5さんが言われる通り「秀丸エディタ」で開いて確認されるのがよいかと思います。(シェアウェアですが試用できますから)
これで正常に表示されるかどうかを補足すれば、求めるツールに近づけると思います。
    • good
    • 0
この回答へのお礼

小生の知識の無さゆえ、皆様にはご迷惑をお掛けしました。でも、色いろ、教えていただきありがとうございました。

お礼日時:2005/10/15 14:00

UnixとWinでは改行コードが違いますね。

また、文字コードがEUCなのかもしれません。
参考URLのソフトを用いて、ShiftJISなどのWindowsで扱える形式に変換してみては。

#秀丸などのエディタだと、文字コードは自動的に認識しますが。

参考URL:http://www.vector.co.jp/vpack/filearea/win95/uti …
    • good
    • 0
この回答へのお礼

小生の知識の無さゆえでした。皆様にはご迷惑をお掛けしました。でも、色いろ、教えていただきありがとうございました。 tarファイルをeditorで見ていたのが間違いの元でした。

お礼日時:2005/10/15 14:05

bintohexexeのようなものの事を言っていると思いますが どういう形のhexファイル


かによります 単純にhexにするのか アドレス情報 チェックサム
更に インテルフォーマット sフォーマット これらの情報が必要です
 いずれもdosで動かすものが 多いと思いますが(コマンドプロンプトで動く)
    • good
    • 0
この回答へのお礼

色々ありがとうございます。

お礼日時:2005/10/15 14:06

バイナリをどのようにアスキー変換したいのかの説明が不足しているので、回答がばらばらになりますね。



バイナリの16進ダンプをテキスト化したいだけなら、「バイナリ」「ダンプ」で検索すればフリーウェアがたくさん有りますし、Win98以前ならDUMPコマンドが標準であります。

この回答への補足

UltraEditorで開いて左ではへキサ表示、右では、ASCIIで読めるかたち(左では41 51・・、 右ではAP・・)とあったので、このファイルはバイナリだと思ってしまいました。しかし、wordpadでは、それなりに読めます。但し、改行がうまく出来ていない。このようなファイルをきちんと開きたいのです。いろんな設定があるようですが、小生、わかっていませんでした。
尚、このファイルは元々はUNIXから持ってきたファイルのようです。

補足日時:2005/10/13 10:56
    • good
    • 0

ishでできますよ。




#今時?

参考URL:http://www.vector.co.jp/vpack/filearea/win/util/ …
    • good
    • 0
この回答へのお礼

まだまだ、いろんなことを勉強することが必要です。
また、よろしくお願い致します。

お礼日時:2005/10/15 14:08

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qテキストデータをそのままバイナリへ

初心者です。
テキストデータ(ASCII)として取り込んだ
「05 50 0E」
といった文字列を
そのままバイナリデータ(16進)としての
「05 50 0E」
に変換したいのですが、こういった処理をする関数ってあるでしょうか?
もしなければ作ってみたいのですが、その際の考え方や有用な関数などありましたら教えていただけると嬉しいです。

Aベストアンサー

#include <stdlib.h>
typedef unsigned char byte;
void a2b(char *asc, byte *bin)
{
while (*asc)
*bin++ = (byte)strtol(asc, &asc, 16);
}

と定義しておいて、

void main(int, char**, char**)
{
byte bin[3];
a2b("05 50 0e", bin);
}

と呼べばbinにバイナリが入りますよ。

strtolの仕様はマニュアルで確認してくださいね。

QVisual Basic でのコードをASCII変換、16進変換したものを元に戻す方法を教えてください

string(9)のエリア"Aa1アあa "の文字を1文字ずつASCII変換して、16進変換し、string(18)のエリアに格納します
すると"416131B182A08281202020"と変換されます
(一文字ずつ Hex(Asc(Buf))を使用しました)

逆に、"416131B182A08281202020"を"Aa1アあa "に戻したいのですが、
どのような関数を使えばよいのかわかりません。
困っています。教えてください。よろしくお願いいたします。

Aベストアンサー

VB既存の関数ではできないと思うので、自分で関数を作るなりしてください。

ヒントです。
ASC関数により変換された2バイト文字(シフトJIS)の1バイト目は81~9FおよびE0~FC(すべて16進)になります。
16進数から10進数に戻すには、頭に"&H"をつけます。(&H82A0 = 「あ」のシフトJISコード)
文字を数字に変換するのはVal関数、数字(文字コード)から文字に変換するのはChr関数です。

Qバイナリデータとテキストデータの違いについて

宜しくお願いします。

バイナリデータを用語辞典で調べると
「テキスト形式(文字データ)以外のデータ形式全般のこと。
実行可能形式のコンピュータプログラムや、画像や音声、
動画などのデータなどがバイナリデータにあたる。」
(http://e-words.jp/w/E38390E382A4E3838AE383AA.html)
とあります。

これでは、バイナリデータとテキストデータの違いが分かりません。

テキストデータはコードの集まりで、
さらに細かくすると0と1の集まり(?)だから・・・
と考えるとバイナリデータとテキストデータの
違いが分かりません。

Q1.私は何が分かっていないのでしょうか?
Q2.バイナリデータとテキストデータの違いを教えてください。

宜しくお願い致します。

Aベストアンサー

バイナリデータは01の集まりです。
テキストデータは文字としての意味が与えられて居ます。ただテキストデータの01としての表現方法はプラットフォーム(OSやアプリケーション)によって異なります。例えば英文字コードでもメインフレームで使われるEBCDICもあり、unixやPCで使われるASCIIもあります。また日本語など英語以外の文字をあらわすのには、さらに多くの種類があります。また改行を表す文字もいろいろです。
例えば telnet で他のコンピュータにログオンして通信する時の文字コードはASCIIで、改行はCRLFと決まっているので、そうでないコンピュータはtelnetプログラムが自分のコンピュータのコード体系と相互変換します。

ftpでテキストデータを転送する時も同じくASCIIとCRLFと決まっています。ただ日本語文字の時にどのコードを使うかは規格では決まっていないので、ftpクライアントで、相手コンピュータの日本語コード種類を指定して、自分と合わなければ転送時に相互変換します。

Cプログラムでもテキストの改行は'\n'と決まっているので、そうでないWindowsの場合はCプログラムとの間でCRLFと'\n'の相互変換が、ライブラリ中で自動的に行われます。

そういった変換を全く行わないのがバイナリデータです。画像ファイルなどはjpegと形式が決まればどのコンピュータでも同じフォーマットなので変換の必要はありません。逆にテキストとみなして変換するとデータが壊れてしまいます。

バイナリデータは01の集まりです。
テキストデータは文字としての意味が与えられて居ます。ただテキストデータの01としての表現方法はプラットフォーム(OSやアプリケーション)によって異なります。例えば英文字コードでもメインフレームで使われるEBCDICもあり、unixやPCで使われるASCIIもあります。また日本語など英語以外の文字をあらわすのには、さらに多くの種類があります。また改行を表す文字もいろいろです。
例えば telnet で他のコンピュータにログオンして通信する時の文字コードはASCIIで、改行はCRL...続きを読む

Qアスキー、バイナリーの違い、注意点(FFFTP)

「アスキー」「バイナリー」
FFFTPこの二つのモードがありますが、用途の境目がわかりません。

FFFTPでJavaファイルを上げる場合なのですが、
ローカル(Windows)のサーバー側(Linux)へFFFTPで転送する際に
作業現場では“バイナリー”で上げて欲しいと言われています。

私の考えでは、
テキスト(人間が読める言語)という定義のアスキーの設定で上げるものだと思っていたので驚いたのですが、何故Javaファイルをバイナリー設定で上げる事になるのでしょうか?


[現時点でまとめてある認識]

アスキー
--------------------------------------------------------------
(1)基本的に人間が読めるテキストベースのファイルモード
(2)サーバの設定に合わせて改行コードが変換してファイルを上げる
(3)テキストファイル系(txt/html/JS/CSS..)

バイナリー
--------------------------------------------------------------
(1)基本的に機械が読み込む為のファイルモード
(2)ファイルを上げた際に何も起こらず、そのままファイル上げることができる。
(3)画像ファイル・音楽ファイル系(jpg/GIF/PNG/mp3..)


この認識の上ですと、
“Javaファイルは人間が読めるもので、テキストファイルである”ということから、“アスキー”で上げるのが妥当だとは思っています。

Javaファイルを“バイナリー”で上げる理由は何なのでしょうか?
コンパイルの際に改行コードが変換されると不都合があるからなのでしょうか?


認識で間違っている点がございましたら、
ご指摘・ご教授の程宜しくお願いします。




参考サイト様
-------------------------------------------------------
ttp://www.res-system.com/item/339
ttp://www.komakusa.net/internet/appendix.html
ttp://www.wanichan.com/beginner/pc/win19.htm

「アスキー」「バイナリー」
FFFTPこの二つのモードがありますが、用途の境目がわかりません。

FFFTPでJavaファイルを上げる場合なのですが、
ローカル(Windows)のサーバー側(Linux)へFFFTPで転送する際に
作業現場では“バイナリー”で上げて欲しいと言われています。

私の考えでは、
テキスト(人間が読める言語)という定義のアスキーの設定で上げるものだと思っていたので驚いたのですが、何故Javaファイルをバイナリー設定で上げる事になるのでしょうか?


[現時点でまとめてある認識]

アス...続きを読む

Aベストアンサー

まずコンピューター(LinuxもWindows)から見れば、
ファイルに対して「アスキー」なんていう属性はなく
テキストファイルを含め
どんなファイルでもバイナリファイル(0と1のデジタルデータ)です。

ffftpでは
アスキーモードでアップロードすると
Cr,Lfの改行コードがLfに置換され
逆にダウンロードする際は
LfがCr,Lfに置換されます。

これはWindowsの標準の改行コードがCr,Lfで
LinuxやUNIXがLfを標準の改行コードにしている為ですが
昨今の優秀なWindowsのテキストエディタは
ほとんどの文字コードに対応し、改行コードも設定できます。
ですからわざわざ「アスキー」でアップロードする意味がなくなってきています。
(WindowsでLfの改行で保存し、バイナリでアップすれば良い。
逆にこのファイルをアスキーでダウンロードするとCrLfになります。)

どちらにしても改行コードを統一するメリットはあります。
例えばviエディタでCr,Lfのファイルを開くと「CTRL+M」とかでて見づらいですし、
Lfだけだと、昔のWindowsのメモ帳等で開くと改行されません。
(Linuxをsambaで直接みてる人にとってはCr,Lfの方が都合が良い場合もあります。)
またVSSやSVN等のバージョン管理ソフトを使っていると、改行コードが変わっただけで
ファイルに変更があったと勘違いされてしまいます。
そういう場合、意図しない改行コードの変換があっては困ります。

#1さんの言われるように仕様的に問題があるのかもしれません。
あとはclassファイルを誤ってアスキーで転送するミスが少なくなる
ぐらいでしょうか。

ただ作業現場の人に理由を聞かないと推測の域をでません。

まずコンピューター(LinuxもWindows)から見れば、
ファイルに対して「アスキー」なんていう属性はなく
テキストファイルを含め
どんなファイルでもバイナリファイル(0と1のデジタルデータ)です。

ffftpでは
アスキーモードでアップロードすると
Cr,Lfの改行コードがLfに置換され
逆にダウンロードする際は
LfがCr,Lfに置換されます。

これはWindowsの標準の改行コードがCr,Lfで
LinuxやUNIXがLfを標準の改行コードにしている為ですが
昨今の優秀なWindowsのテキストエディタは
ほとんどの文字コー...続きを読む

Qpythonでバイナリデータを配列に読み込みたい

python初心者なので、できるだけお手柔らかにお願いします。
pythonのバージョンは2.7.3です。

=====================================================
あるバイナリデータ(test.bin)から、
2バイトずつ100*100の2次元配列に読み込ませたいのですが、
配列への読み込ませ方が分からず悩んでいます。
=====================================================


#### ここから sampleスクリプト(未完) ################

f = open("./test.bin", "rb")

x = 100
y = 100
bytesize = 2

data = f.read(bytesize*x*y)

array = [[0 for j in range(x)] for i in range(y)]
##############################################

上記の後、arrayの各要素に2byteずつ整数値としてデータを読み込ませたいのですが、
dataからarrayへの受け渡し方法が分からず悩んでいます。
かなり初歩的な質問かも知れませんが、ヒントでもいいので教えて下さい。

また、上記の時点で誤っていることがありましたら
ご教授お願いします。

python初心者なので、できるだけお手柔らかにお願いします。
pythonのバージョンは2.7.3です。

=====================================================
あるバイナリデータ(test.bin)から、
2バイトずつ100*100の2次元配列に読み込ませたいのですが、
配列への読み込ませ方が分からず悩んでいます。
=====================================================


#### ここから sampleスクリプト(未完) ################

f = open("./test.bin", "rb")

x = 100
y = 100
bytesize = 2

data = f.read(bytesize*x...続きを読む

Aベストアンサー

http://docs.python.jp/2/library/stdtypes.html#file.read
にあるように、ファイルオブジェクトのreadはstringを返します。つまり、
data = f.read(bytesize*x*y)
なら、dataがstringです。
stringなので、Xバイト目の「文字」は
data[X]
で取り出せます。
これは、元のバイナリデータの1バイトを、対応する「文字」にしたものです。元のバイナリデータを得るには、逆変換する必要があります。文字のコードを得るのには、ord関数( http://docs.python.jp/2/library/functions.html#ord )を使います

ord(data[X])

2バイトから16bitの整数を取るには、まず、2バイトそれぞれの値を得ます
a0=ord(data[X0])
a1=ord(data[X1])
ここで、上位を8ビット左へシフトして、下位とのORを取れば、16ビットになります。
ただ、上記のa0,a1のどちらが上かは、どう保存したかによるので、今ある情報だけでは判断できません。
# a0が上なら
Y=a0 << 8 | a1

また、符号有り16bit整数だと、もう少し複雑になります。


全てのi,jについて、array[i][j]に対応するバイト位置 X0,X1 を求め、計算した値を代入する、という流れになります

http://docs.python.jp/2/library/stdtypes.html#file.read
にあるように、ファイルオブジェクトのreadはstringを返します。つまり、
data = f.read(bytesize*x*y)
なら、dataがstringです。
stringなので、Xバイト目の「文字」は
data[X]
で取り出せます。
これは、元のバイナリデータの1バイトを、対応する「文字」にしたものです。元のバイナリデータを得るには、逆変換する必要があります。文字のコードを得るのには、ord関数( http://docs.python.jp/2/library/functions.html#ord )を使います

ord(data[X])...続きを読む

Qボタンの表示の色、フォントを変更したい

VC++でプログラミングしています。
MFCのダイアログベースのEXEを造っています。
ダイアログにはボタンとエディットボックスを貼り付けています。
私がやりたいのは以下のことです。

・ボタンの色を設定したい
・ボタン、エディットボックスに表示する文字の色を設定したい
・ボタン、エディットボックスに表示する文字のフォント(サイズ)を設定したい

プロパティでサイズ変更すると全体に反映されてしまうので、個々の
コントロールについて制御したいと思っています。

ヘルプで調べて、それらしい関数を見つけるのですが使い方がわかりません。
VCを始めたばかりで、クラスの理解がまだ浅いです。。。
関数の説明は理解できても、「じゃあ、コードはどう書くの?」という状態です。
「○○ は ×× のメンバではありません」と、よく怒られてます。。。

識者の方、ご教授願います。
コードがどうなるのか知りたいので、簡単なサンプルコードがあると助かります。

また、質問ではないのですが、「この関数は○○をする」というのではなく、
「○○をするにはこの関数を使う」という様に調べられる、お勧めの書籍、
Webなどがありましたら教えてください。
今後の勉強に役立てたいと思っています。

VC++でプログラミングしています。
MFCのダイアログベースのEXEを造っています。
ダイアログにはボタンとエディットボックスを貼り付けています。
私がやりたいのは以下のことです。

・ボタンの色を設定したい
・ボタン、エディットボックスに表示する文字の色を設定したい
・ボタン、エディットボックスに表示する文字のフォント(サイズ)を設定したい

プロパティでサイズ変更すると全体に反映されてしまうので、個々の
コントロールについて制御したいと思っています。

ヘルプで調べ...続きを読む

Aベストアンサー

下2つについては以下でいけると思います。

class CMyDlg : CDialog
{
public:

  CFont m_cFont; //Dlgクラスのメンバとして用意
/*
  他のメンバ
*/
  virtual BOOL OnInitDialog(); //初期化

};


BOOL CMyDlg::OnInitDialog()
{
  //TODO:ここでFontを設定しておく(文字の色、サイズなど)

  //Fontを設定
  ((CButton *)GetDlgItem(IDC_BUTTON))->SetFont(&m_cFont,TRUE);

  //TODO:その他の初期化

  return TRUE;
}
//見易さのために、全角スペースを使っています;;

一番上はBitmapを貼り付けるか、CWndのメンバ関数を使って
塗りつぶすかどうかだと思います。

MFCではなく、C++Builderのページなのですが、少しいじればMFCでも使えるので、参考URLに示しておきます。

参考URL:http://market.agr.tottori-u.ac.jp/ken/tech.html

下2つについては以下でいけると思います。

class CMyDlg : CDialog
{
public:

  CFont m_cFont; //Dlgクラスのメンバとして用意
/*
  他のメンバ
*/
  virtual BOOL OnInitDialog(); //初期化

};


BOOL CMyDlg::OnInitDialog()
{
  //TODO:ここでFontを設定しておく(文字の色、サイズなど)

  //Fontを設定
  ((CButton *)GetDlgItem(IDC_BUTTON))->SetFont(&m_cFont,TRUE);

  //TODO:その他の初期化

  return TRUE;
}
//見易さのために、全角スペースを使って...続きを読む

Qバッチ終了時にDOS窓を閉じるコマンド

自作バッチについて質問があるのですが、
バッチ終了時にDOSプロンプトを自動的に閉じる方法を教えて下さい。

以下の方法は知っているのですが↓
------------------------------------------------------------
バッチのプロパティ画面の「プログラム終了時にウィンドウを閉じる」を
チェックする
------------------------------------------------------------

上記のようなやり方ではなく、バッチファイルの中に直接コマンドを書いて
設定する方法を教えて下さい。

Aベストアンサー

バッチファイルでウィンドウを閉じるのはexitコマンドです。

exit

だけを記述したバッチファイルを作って実行してみると確認出来ます。

Q10進数をアスキーコードに変換

http://www.blue.b-city.net/~gg99486/asciicode.html
上記のHPにあるように、
0→30
1→31
A→41
Z→5A
ASC関数とは返ってくる値が違うので自作しないといけないのでしょうか?
よろしくお願いします。

Aベストアンサー

質問文のコードは16進で表現したものです。
ASC関数は、10進で値を返します。
16進表現にしたいなら
HEX(ASC("1"))
のようにすれば、
31
になるはずです

QLPSTR型の初期化について

memset関数で、初期化しようとしたら、警告メッセージが出ます。
警告が出ない方法を教えて下さい。

以下の処理の場合に警告が発生します。
LPSTR i;
unsigned long j;
j=100;
(void)memset( i, NULL, j);

Aベストアンサー

どのメモリを初期化したいのでしょう?

iが未初期化(iにポインタ、つまりメモリアドレスを代入していない)な為、コンパイラは
「定義されただけで一度も代入が行われていない変数が参照されているぞ」
と警告しています。

普通、
typedef char CHAR;
typedef CHAR *LPSTR;
と定義されています。従って
char *i;
unsigned long j;
j=100;
(void)memset( i, NULL, j); //この時点では「i」は不定
と書くのと同じです。

このプログラムを実行すると、iは何になっているか判らないので、実行時に暴走したり、一般保護例外が発生します。

動的にメモリを確保するなら、以下のようになります。
LPSTR i;
unsigned long j;
j=100;
i=(LPSTR)malloc(j); //100バイト分のメモリを確保
if(i != NULL) { //確保に成功したら
  (void)memset(i,'\0',j); //第2引数は「NULL」でなく「'\0'」が正しい
} else { //確保に失敗したら
  printf("メモリが確保出来ません。");
  abort();
}

静的にメモリ確保するなら、以下のようになります。
LPSTR i;
CHAR buf[100];
unsigned long j;
j=100;
i=&buf[0] //bufの先頭のアドレスに初期化
(void)memset(i,'\0',j); //第2引数は「NULL」でなく「'\0'」が正しい

ここで、
LPSTR i;
は「文字列の実体を定義しているのではない」と言う事に注意して下さい。

どのメモリを初期化したいのでしょう?

iが未初期化(iにポインタ、つまりメモリアドレスを代入していない)な為、コンパイラは
「定義されただけで一度も代入が行われていない変数が参照されているぞ」
と警告しています。

普通、
typedef char CHAR;
typedef CHAR *LPSTR;
と定義されています。従って
char *i;
unsigned long j;
j=100;
(void)memset( i, NULL, j); //この時点では「i」は不定
と書くのと同じです。

このプログラムを実行すると、iは何になっているか判らないので、実行時に暴...続きを読む

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?


人気Q&Aランキング