喫茶XRAYトップページ

[スレッド全体
]

[10607] Re:長さを指定したString型変数返信 削除
2016/12/20 (火) 00:17:32 Mr.XRAY
> 途中の要素に「文字」を代入しても,要素 0 には文字数は格納されません.
> つまり,文字列が代入されていないのと同状態となります.


なんですが,代入した「文字」はもちろん取り出せます.
その確認コードです.
質問している方は

>//buf :string[16]; では buf[j] が'文字'にならない!

と書いていますが,そんなことはありません.
buf[j] には間違いなく '文字' が格納されます,
 
動作確認は Windows 7 U64(SP1) + Delphi XE(UP1) Pro です.
テストする場合,文字列を初期化しないとゴミが入ることがあります.

procedure TForm1.Button2Click(Sender: TObject);
var
  i    : Integer;
  buf  : string[16];
  LText : string;
begin
  //初期化
  buf := '';

  for i := 1 to 16 do begin
    buf[i] := AnsiChar(Ord('A') + i - 1);
  end;
  Memo1.Lines.Add('Buttn2 : ' + string(Buf));


  LText := '';
  for i := 1 to 16 do begin
    LText := LText + buf[i];
  end;
  Memo1.Lines.Add('Buttn2 : ' + LText);
end;



[10611] Re2:長さを指定したString型変数返信 削除
2016/12/23 (金) 09:05:25 Mr.XRAY
念のため,短い文字列もふつーに文字列として操作することができます.

procedure TForm1.Button1Click(Sender: TObject);
var
  buf : string[16];
begin
  Memo1.Lines.Clear;

  buf    := 'ABC';
  buf[4] := 'D';

  //要素4の文字は認識しないので文字列の長さには含まれない
  //短い文字列はStringでキャストしないと警告が表示される
  Memo1.Lines.Add(string(buf));
  Memo1.Lines.Add(IntToStr(Length(buf)));

  //文字列の長さ以内の要素の文字を変更した場合
  //文字の置換となる
  buf[1] := 'B';
  Memo1.Lines.Add(string(buf));
end;

ところで,http://okwave.jp/qa/q9268853.html のキーワードが
「ストリング Delphi AnsiChar AnsiString TPersonArray」
となっています.こういうところからもその方のスキルを判断できます.

TPersonArray は自分で定義した型ですから,キーワードにするには不適切です.
ストリングはできれば String とか String 型ですね.
あとはやむを得ないでしょう.



[10612] Re3:長さを指定したString型変数返信 削除
2016/12/23 (金) 15:05:09 SO

[10613] Re4:長さを指定したString型変数返信 削除
2016/12/23 (金) 16:11:37 Mr.XRAY
▼ SOさん

> http://ht-deko.com/tech018.html

おっ !  Byte(S[0]) は操作できるんですね.
失礼しました.間違えました.
それと,String[0] は要素数 (文字数) ではないてすね.
これも間違えました.ゴメンなさい.
旧い Delphi の時代の話 ?

ダメだこりゃ... (泣)
SO さんサンクスです.SO さんやさしいですね.
それとなくリンクで教えてくださって... (涙)

# 実はですね.このような間違いをサイトの記事で見つけることが
# あるんです.で,ひそかに修正したりしています.
# 記事を信じて読んでいる方,本当にゴメンナさい.


[10615] Re5:長さを指定したString型変数返信 削除
2016/12/24 (土) 09:15:28 SO
▼ Mr.XRAYさん

> ダメだこりゃ... (泣)
> SO さんサンクスです.SO さんやさしいですね.
> それとなくリンクで教えてくださって... (涙)


いやぁ、素晴らしきはDEKOさんです(^^


[10617] Re6:長さを指定したString型変数返信 削除
2016/12/24 (土) 10:58:08 Mr.XRAY
▼ SOさん

> いやぁ、素晴らしきはDEKOさんです(^^

確かに (^^


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