【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?

こんにちは。会社の人がテキストエディタでファイルを開いて、このデータはNULLが入っているからおかしいとかブツブツ言っていました。

データの中身はバイナリデータではなく、固定長、またはCSVファイルのような事を言っていました。

そこで疑問に思ったのですが、固定長、またはCSVでNULLなんてあるんでしょうか?たぶん、空文字列の事をさしてNULLと言っているような気がするのですが、テキストデータにNULLは存在するのでしょうか?

A 回答 (3件)

まぁ、最終的にはその人に聞いてください。

となりますが……。

>テキストデータにNULLは存在するのでしょうか?

Unicodeで保存すると、場合によっては00hが入ることもあるでしょう。
# プログラマ的に00hとNULLは別物…なんですけどね……。

Windowsでメモ帳を起動して、適当に何か記入します。(TESTとか、半角文字込みで)
[ファイル][名前を付けて保存]で保存するときに文字コードが選択できるかと思われますので
「Unicode」か「Unicode big endian」を選択して保存すると、ファイル中に00hが含まれるようになるでしょう。
# Windowsのバージョンによってはメモ帳で文字コードの選択ができないかも知れませんが…。

>固定長、またはCSVでNULLなんてあるんでしょうか?

固定長ならテキストファイルである必要も無いでしょうから、C言語などの構造体をそのまま書き出せば00hが含まれることもあるでしょう。
ソレをテキストファイルと言っていいかはかなりギモンですが。
# そういうデータをテキストエディタで開く…ということは可能でしょう。
# まともに読めるものになるかは別として。
# 文字コードがANSIまたはShiftJISでないデータの場合、バイナリダンプだと文字列部分が読みにくい…なんて理由でテキストエディタで無理矢理開くことがあるかも知れません。

CSVだと……どうなんでしょうかねぇ…
Unicodeで保存されることはまずないかと思いますけど。
# Unicode保存したcsvファイル、Excel2007では普通に読めます…な。
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2012/12/27 18:30

Null Charと呼ばれるものはありますね。


数字で言えば0のこと

テキストエディタの中には、ファイルを開いた際に0(=Null Char)が入っていると警告するものがあります。
※バイナリファイルを開いたんじゃないかって警告するために、0を判定根拠として利用しているということでしょう。

もし、そのようなテキストエディタで開いた場合なら、NULLが入っているというのは、NullCharが入っているという意味(ファイルオープン時に警告が出た)という可能性もありますね。

あるいはCSVでNULLを扱うために、NULLという文字列を格納しているという場合もありますね。
文字列としてのNULLと区別するには、"NULL"と引用符で囲んで格納すればいい。
あるいは、空文字列は""と明示的に空文字列を格納して、NULLは空白(空白文字列ではなく)という方法も考えられます。

CSVデータのデータ列で数字が入る設計部分が空白なら、概念的にはNULLが入っているということでもありますね。

上記方法であれば、テキストデータにNULLは保存できないが、NULLの格納を実装することはできるとは言えますね。
※ちょっとややこしいですが

あなたの推測どおり、空文字列をさしてNULLと言っているだけという場合もあり得ます。

実際のところはその人に聞くか、見ていたというテキストファイルを覗いてみるかしないと、わかりませんけどね。
    • good
    • 1
この回答へのお礼

ありがとうございます!

お礼日時:2012/12/27 18:30

>>テキストデータにNULLは存在するのでしょうか?



はい、存在しないことが多いですが、存在できない仕様ではないため、それが存在するテキストデータもあります。
固定長では、NULLを前提にした仕様でテキストデータを作ることもあります。
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2012/12/27 18:30

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報