名前 題名 ▼ KONNOYAさん > ▼ Mr.XRAYさん > お見事です。非常に判りやすい記事でした^^ > やはりコード中に実値で書くのではなく、High(上限値)とLow(下限値)でループを回した方が確実ですね。 > > 普通の配列でも定義文とループ文でそれぞれに実値を書いていて、 > サイズの変更があった場合、それぞれの箇所を修正しなければならず、 > 複雑なプログラムだと必ずヒューマンエラーが発生します。 > > 領域外をアクセスして今まで平気だったとか、そういうバグが一番たちが悪く、 > つまり、自分が意図しない動作が発生してしまうのは誰もが避けたいですよね。 > > 余談ですが、デスクトップコンパイラのString型のインデックスは1発進ですが、 > モバイルコンパイラは0発進になっています。 > この点からもMr.XRAY様の記事の様にHighとLowを使うべきかと。 > > ・インデックスが 0 から始まる文字列(Delphi) > http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%81%8C_0_%E3%81%8B%E3%82%89%E5%A7%8B%E3%81%BE%E3%82%8B%E6%96%87%E5%AD%97%E5%88%97%EF%BC%88Delphi%EF%BC%89 > > 【検証用コード】 > var > Test : String; > begin > Test := 'ABCDEF'; > Self.Caption := System.Low( Test ).ToString + ' - ' + System.High( Test ).ToString; > end; > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link