喫茶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.
wikipedi
a.
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/
StringPC
har.
htm#
00
に [備考 2] を追加しました.
ある特定の文字の判定のサンプルというわけにはいきません.
そんなことしたら
Null 文字の判定は ?
改行文字の判定は ?
TAB 文字の判定は ?
A と言う文字の判定は ?
というように,全ての文字についての記事あるいはサンプルになってしまいます.
この文章とリンクの記事とで理解していただくしかありません.
INCM/CMT
Cyclamen v3.82