Delphi
Pascal
objectpascal

Object Pascal の文字・文字列の小ネタ

文字と文字列について

ここでは文字と文字列の記述についてを記載します。
小ネタなので、それ以外の文字列の内部データ形式などについてはこちらをどうぞ。

文字列の内部データ形式

Object Pascal で文字を表す方法

  1. '' シングルクォートを使う
  2. # を使う
  3. ^ を使う
var
  Ch: Char;
begin
  Ch := 'A'; // (1) の方法
  Ch := #65; // (2) の方法(16進数で Ch := #$41 とも書けます)
  Ch := ^M;  // (3) の方法(^A = #1 で始まり全ての文字が使えます。主に制御文字を書くのに使います) 
end.

Object Pascal の文字・文字列の連結

  1. 足し算
const
  Str1 = 'ABC' + 'DEF';    // (1) の方法。足し算で連結します
  Str2 = 'ABC'#13#10'DEF'; // (2) の方法。文字列と上記2,3で表現される文字の間に
  Str3 = 'ABC'^!'DEF';     // 空白など何も書かないと連結されます

Object Pascal でシングルクォートを記述する方法

  1. 文字コードを使う
  2. '' を使う
  3. '''' を使う
const
  SQ1 = #39;    // (1) の方法。コードで指定します
  SQ2 = 'It''s' // (2) の方法。文字列中(文頭・文尾はNG)の場合は '' でシングルクォートを表します
  SQ3 = '''';   // (3) の方法。一個だけ指定するときなど。上記の文字が無い版

ちなみに

改行については System.pas に sLineBreak として宣言されています。
中身は Platform 依存です(Windows: #13#10, POSIX: #10)。

他にもパスの区切り文字ファイル名に使えない文字の集合などは TPath から取れたりします。

他にも色々定義済みのモノがあるので、ライブラリのソースを読むといいと思います。

まとめ

古の Pascal の書き方でもちゃんとコンパイル通るのすごい。