• ベストアンサー

テキストデータでNULL?

こんにちは。会社の人がテキストエディタでファイルを開いて、このデータはNULLが入っているからおかしいとかブツブツ言っていました。 データの中身はバイナリデータではなく、固定長、またはCSVファイルのような事を言っていました。 そこで疑問に思ったのですが、固定長、またはCSVでNULLなんてあるんでしょうか?たぶん、空文字列の事をさしてNULLと言っているような気がするのですが、テキストデータにNULLは存在するのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.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では普通に読めます…な。

mellow91
質問者

お礼

ありがとうございます!

その他の回答 (2)

  • coai
  • ベストアンサー率50% (152/301)
回答No.2

Null Charと呼ばれるものはありますね。 数字で言えば0のこと テキストエディタの中には、ファイルを開いた際に0(=Null Char)が入っていると警告するものがあります。 ※バイナリファイルを開いたんじゃないかって警告するために、0を判定根拠として利用しているということでしょう。 もし、そのようなテキストエディタで開いた場合なら、NULLが入っているというのは、NullCharが入っているという意味(ファイルオープン時に警告が出た)という可能性もありますね。 あるいはCSVでNULLを扱うために、NULLという文字列を格納しているという場合もありますね。 文字列としてのNULLと区別するには、"NULL"と引用符で囲んで格納すればいい。 あるいは、空文字列は""と明示的に空文字列を格納して、NULLは空白(空白文字列ではなく)という方法も考えられます。 CSVデータのデータ列で数字が入る設計部分が空白なら、概念的にはNULLが入っているということでもありますね。 上記方法であれば、テキストデータにNULLは保存できないが、NULLの格納を実装することはできるとは言えますね。 ※ちょっとややこしいですが あなたの推測どおり、空文字列をさしてNULLと言っているだけという場合もあり得ます。 実際のところはその人に聞くか、見ていたというテキストファイルを覗いてみるかしないと、わかりませんけどね。

mellow91
質問者

お礼

ありがとうございます!

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>テキストデータにNULLは存在するのでしょうか? はい、存在しないことが多いですが、存在できない仕様ではないため、それが存在するテキストデータもあります。 固定長では、NULLを前提にした仕様でテキストデータを作ることもあります。

mellow91
質問者

お礼

ありがとうございます!

関連するQ&A

  • MS-ExcelデータをCSVで保存するとカラム中に改行が入る

     マイクロソフトExcelデータをCSV形式で保存し、そのCSVファイルをテキストエディタ(Windows標準搭載のメモ帳)で開くと、意図しない四角い黒塗りの文字(■のような文字)が文字列中に紛れ込んでいることがあります。CSVファイルにする以前のExcelデータには、このような文字は存在していません。  この黒塗りの四角い文字は何でしょうか?これをCSVファイルに出力しないようにするには、どのようにすれば良いでしょうか?

  • テキストデータをSQLServerに取込むには

    列区切なし、改行コードなしの固定長データをSQLにコンバートしたいのですが、上手く行かず困っています。 (ファイル形式:テキストファイルバイナリ固定長) ・試した方法  (1)DTSインポート/エクスポート(←もう全然上手く行きませんでした・・・)  (2)BULK INSERT       (←上手く取り出せている自身がない・・・) またコンバート後、SUBSTRINGを使ってデータを取り出し、フィールドにセットしていこうと考えているのですが、これも上手く行きません。 半角・全角文字やスペースが含まれていると、取り出せないのでしょうか?

  • テキストファイルのデータからバイナリを作りたい

    現在、テキストデータとしてCSVファイル1つあたり8バイトのデータが1000個ほどのデータが書かれているファイルがあります。このデータをバイナリファイルへ数値も変換して行きたいと思っています。 たとえば1個目のデータ”12345678”というテキストデータをバイナリの"12345678"に変換したらそれを0x00番地に並べて、そして2個目のデータ”87654321”というデータをバイナリにしたらそれを0x90離れた場所に置いていき、それを1000回繰り返して、結果をバイナリファイルで出力したいのですが、何か簡単にできるフリーソフトなどありませんでしょうか? また、プログラムとかでも簡単にできるのならそうしたいのですが、どうしたらよいか教えていただけないでしょうか?

  • テキストデータなのですが、

    途方に暮れてます。教えて下さい。 VB6にて、テキストファイルを読み込みます。 改行の部分はReplace(テキストファイル, vbLf, vbNewLine)として、 改行しました。(私はバイナリの扱いをほとんど知りません) 次に問題となったのが、バイナリエディタで見てみると、00という空白 文字です。(ドットかはっきりわからないのですが、.となってます) この空白文字を素直に空白文字としたいのですが、空白が削除されて 変換されます。 前 ABCDEF 後ABCDEF といった感じです。 そのままの状態で改行のように、空白文字を変換したいのですが、 どうすればよいでしょうか? 私自身、バイナリについてわかっていないので、内容がわかりにくい と思いますが、どうぞよろしくお願いします。

  • テキストデータをSQLServerに取込むには

    列区切なし、改行コードなしの固定長データをSQLにコンバートしたいのですが、上手く行かず困っています。 (ファイル形式:テキストファイルバイナリ固定長)  ・試した方法   BULK INSERT     添付画像のようなデータをSQLサーバに取り込みたいのですが  上手く読み込みができません。  添付画像のようなデータは取り出せないのでしょうか?   宜しくお願いします。。

  • Javaでoracleから抽出したデータについてnullのもの

    Javaでoracleから抽出したデータについてnullのもの タイトルの通りですが null値のデータを空文字で抽出したいのですが 現在resultsetにデータ格納して JavaはgetString("項目名")で抽出しています そうするとnull値ではなく「null」という 文字列でかえってきます stringですので当たり前かもですが 「null」ではなく「」という全く空のデータを 取得したい場合 Javaでget~で取得できるものがあれば 教えてください

    • ベストアンサー
    • Java
  • 空の文字列とnullと""

    java初心者です。 空の文字列とnullと""の3つの関係がよくわかりません。 TextFieldを使った簡単なプログラムを作りました。そこで、”TextFieldに何も入力されていないこと”を判定する文を書こうと思ったのですが、どう書けばいいのか迷いました。 TextFieldのオブジェクトをtfとして、tf.getText()==""かtf.getText()==nullで大丈夫だと思いましたが、実行してみると、どちらを用いても判定できませんでした。結局、tf.getText().length()==0で判定できました。そこで、リファレンスを見ると、getText()はデフォルトで空の文字列を返すと、書いてありました。 したがって、「""とnullは空の文字列とは異なる」という理解に至ったのですが、では空の文字列とは何なのかという疑問がわいてきました。 また、自分は""とnullの違いもよくわかっていません。""とnullが異なるものである、ということはわかるのですが・・・ 質問をまとめると ・空の文字列とは何なのか? ・空の文字列は""やnullとどう違うのか? です。よろしくお願いします。

    • ベストアンサー
    • Java
  • テキストデータとは

    コンピュータの世界で、実務上一般的にテキストデータと言われるのは 、例えば、エクセルで言えば表示されているものつまり最も表層状に現れている文字のことでよろしいのでしょうか?これが、例えばC言語の プログラム作成なら、エディタ上に表示されている文字列等という認識になるのでしょうか?変な質問かも知れませんが、一般的にオフィス上でテキストデータに変換した場合あくまでそのソフトが処理する文字列の集まりという認識でよろしいのでしょうか。

  • Excelへのテキストデータの取り込み

    VB2005でテキストファイルを作成し、それをExcelに取り込もうとしています。 123,234,120,200 200,300,400,500 111,222,333,444 のようなファイルを作成し、これをExcelに取り込むと 3行で取り込まれます。 次に 123,234,120,200 200,300,400,500 111,222,333,444 のように文字列の行間に改行文字(chr$(13))だけの行を作成し、 これを取り込もうとすると、 2行おきに読み込まれてしまいます。 メモ帳でファイルの中身を確認すると1行おきになっているのに、 Excelのデータ→外部データの取り込みでテキストデータウィザードを見ると すでに2行おきになっているのです。 1行おきに作成した文字列ファイルを1行おきに取り込むにはどうしたらいいのでしょうか?

  • fgetcsvでCSVを取得した際のnullに関し

    phpでfgetcsv関数を使用して、取得したデータをDBに登録するという作業を行いたいと考えています。 ですが、CSVでNULLの部分の取得が上手くいっていないようで、DBには「NULL」という文字列で取り込まれてしまいます。 「\N」にすることでNULLとして登録出来るという情報があったので、CSVを修正して「NULL」を「\N」にしてみたのですが、やはり「\N」という文字列として登録されてしまいました。 正常にNULLとして認識させるにはどのような対応を行えば良いのでしょうか。 よろしくおねがいします。

    • ベストアンサー
    • PHP