喫茶XRAYトップページ

[▲前のスレッド]

[12725] Null文字の判定返信 削除
2019/4/18 (木) 08:34:37 Mr.XRAY
こんなところで許していただけるでしようか.

procedure TForm1.Button1Click(Sender: TObject);
var
  LNull : string;
begin
  Memo1.Lines.Clear;

  LNull := #0;
  if LNull = Null then begin
    // 定数 Null は Variant 型なのでここは実行されない
    Memo1.Lines.Add('LNull is Null');
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  LNull : OleVariant;
begin
  Memo1.Lines.Clear;

  LNull := Null;
  if LNull = Null then begin
    // これは実行される
    Memo1.Lines.Add('LNull is Null');
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  LText  : string;
  LIndex : Integer;
  LPChar : PChar;
begin
  Memo1.Lines.Clear;

  // Null 終端文字列 (PChar 型) の Null 文字はこの文字を意味する
  // 定数名の Null とは違うので注意
  LText := 'ABC' + #0 + 'XYZ';
  for LIndex := 1 to Length(LText) do begin
    if LText[LIndex] = #0 then begin
      Memo1.Lines.Add('null');
    end else begin
      Memo1.Lines.Add(LText[LIndex]);
    end;
  end;

  LPChar := PChar(LText);
  Memo1.Lines.Add(LPChar);
end;




[12726] Re:Null文字の判定返信 削除
2019/4/18 (木) 08:42:54 Mr.XRAY
で,こういうコードだと

procedure TForm1.Button1Click(Sender: TObject);
var
  LNull : string;
begin
  Memo1.Lines.Clear;

  LNull := Null;
  if LNull = Null then begin
    Memo1.Lines.Add('LNull is Null');
  end;
end;

下図のように例外となる
ともかく,いろいろやってみることです.
Null 文字が #0 だということを知らないと... それはですね...どうもならんです.
LNull := '';
は Null 文字ではありません.文字がないのです.
Null 文字は一応「文字」です.

つまりです.Null 文字の判定はどうしたらいいのか ?
ではなく,Null 文字のコードポイント (文字コード) は何ですか ? ですね.
えっ !? 文字コードって何ですか? ですか ?
おとつい来てください.



[12727] Re2:Null文字の判定返信 削除
2019/4/18 (木) 09:03:38 Mr.XRAY
> ではなく,Null 文字のコードポイント (文字コード) は何ですか ? ですね.
> えっ !? 文字コードって何ですか? ですか ?


これ書いてて思ったのですが,
文字には各々の文字に対応した値,数値,バイナリ値があるということを
理解していない方がいるんですね.きっと.だから

「テキストをバイナリ値で保存するには」

という質問があるのかも知れません.
そういう方にはコードページとかコードポイントという話は通じないのかも知れません.


[12731] Re2:Null文字の判定返信 削除
2019/4/18 (木) 15:26:05 Mr.XRAY
> Null 文字の判定はどうしたらいいのか ?

何んだかこの質問,最近どこかで見たようなきがするんですが.
気のせいか ?

参考リンク

[ASCII - Wikipedia]
https://ja.wikipedia.org/wiki/ASCII

[ASCIIコード表]
http://www3.nit.ac.jp/~tamura/ex2/ascii.html


[12752] Re3:Null文字の判定返信 削除
2019/4/22 (月) 22:33:19 Mr.XRAY
[ Delphi の文字列 - String 型と PChar 型 ]
http://mrxray.on.coocan.jp/Delphi/Others/StringPChar.htm#00

に [備考 2] を追加しました.
ある特定の文字の判定のサンプルというわけにはいきません.
そんなことしたら

  Null 文字の判定は ?
  改行文字の判定は ?
 TAB 文字の判定は ?
  A と言う文字の判定は ?

というように,全ての文字についての記事あるいはサンプルになってしまいます.
この文章とリンクの記事とで理解していただくしかありません.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82