名前 題名 ▼ takaさん > ▼ たてぐや@ガリガリ中さん > > > > 実際、テキスト処理に関しては弱いというか関数が少ないですね。 > > BASICのRIGHT$とかMID$に当たる関数は自作して使っています。でな > > いとコードが汚く長くなってしまいます。 > > 正規表現が使えるといろいろできそうな気がします。Delphi6でも > > 正規表現は関数を書けば実現できるのは解っているのですが、なかな > > か書き始める気になりません。 > > > そうですね。付属のVB関数もどきは、欠陥がありますからね > 自作の方が安心ですね。 > > とりあえず、VBもどき関数のまとめ。 > > 関数 > Visual Basic Delphi(StrUtilsユニット) > Left LeftStr , AnsiLeftStr > Mid MidStr , AnsiMidStr > Right RightStr, AnsiRightStr > LeftB LeftBStr > MidB MidBStr > RightB RightBStr > AnsiLeftStrは、LeftStrが呼び出されるようなので結果は同じです。 > > ※Delphiの場合 > 【string型】 > string型の文字列に対して、操作をする場合、 > WideStringで自動変換をしてごまかしているようなので > 正常でない文字列(#$0とか制御記号を含む場合やOSと文字コードが違う場合など)では、 > データが破損・消失するとこがります。 > この関数の何が問題かというと > 勝手に自動型変換をつかって > 文字列が破損しても例外が発生しない点です。 > ヘルプの説明では、 > string型は、自動型変換が介入することにふれていない。重大なミスがあります。 > ソースで定義検索でつつく癖のない場合、きっと気がつかないでしょう。 > 怪しい場合は、バイト単位で処理するほうが無難です。 > バイト単位の場合は、LeftBStr,MidBStr,RightBStr > 【WideString型】 > WideString型の文字列で宣言している場合は、正常に動作します。 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link