喫茶XRAYトップページ

[スレッド全体
]

[3623] Delphi XE情報返信 削除
2010/9/1 (水) 15:53:40 Mr.XRAY
参考までに.

http://ht-deko.minim.ne.jp/ft1008.html#100831

正規表現クラスが追加されたようです.

[3626] Re:Delphi XE情報返信 削除
2010/9/1 (水) 19:46:47 taka
▼ Mr.XRAYさん
> 参考までに.
>
> http://ht-deko.minim.ne.jp/ft1008.html#100831
>
> 正規表現クラスが追加されたようです.

えっ! いままで実装されていなかったのですか!!
 でも、よかったです 実装されたなら。

じゃあ、ひょっとして、多言語で標準搭載の
連想配列もまだだったりして?

[3627] Re2:Delphi XE情報返信 削除
2010/9/1 (水) 23:10:42 Mr.XRAY
▼ takaさん

> えっ! いままで実装されていなかったのですか!!
>  でも、よかったです 実装されたなら。


ですよね.Delphiは文字列やテキスト関係処理が弱いとか
言われていましたからね.

> 連想配列もまだだったりして?

どうなんでしょう.聞いたことないです.


[3629] Re3:Delphi XE情報返信 削除
2010/9/1 (水) 23:19:52 たてぐや@ガリガリ中 〔HomePage
▼ Mr.XRAYさん
▼ takaさん

> ですよね.Delphiは文字列やテキスト関係処理が弱いとか
> 言われていましたからね.


 実際、テキスト処理に関しては弱いというか関数が少ないですね。
BASICのRIGHT$とかMID$に当たる関数は自作して使っています。でな
いとコードが汚く長くなってしまいます。
 正規表現が使えるといろいろできそうな気がします。Delphi6でも
正規表現は関数を書けば実現できるのは解っているのですが、なかな
か書き始める気になりません。
 
> > 連想配列もまだだったりして?
>
> どうなんでしょう.聞いたことないです.


 当面使うことなさそうですが…

[3648] Re4:Delphi XE情報返信 削除
2010/9/5 (日) 17:31:47 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型の文字列で宣言している場合は、正常に動作します。


[3649] Delphiの文字列処理関数返信 削除
2010/9/6 (月) 20:06:25 Mr.XRAY
> 関数
> Visual Basic    Delphi(StrUtilsユニット)
>  Left         LeftStr , AnsiLeftStr
>  Mid          MidStr  , AnsiMidStr
>  Right        RightStr, AnsiRightStr
>  LeftB        LeftBStr
>  MidB         MidBStr
>  RightB       RightBStr
>  AnsiLeftStrは、LeftStrが呼び出されるようなので結果は同じです。
>


こんなのがあったんですね.
Delphi 6のヘルプにありました.古いバージョンにはないのかな?
ついでに文字列処理ルーチンをみたら,見たこともない関数が(笑)


[3650] Re:Delphiの文字列処理関数返信 削除
2010/9/7 (火) 22:38:40 たてぐや@ガリガリ中 〔HomePage
▼ Mr.XRAYさん

> ついでに文字列処理ルーチンをみたら,見たこともない関数が(笑)

 そういうのってありますよね。いつも自分でコードを書いていたのに
たまたまヘルプを読んだら同等の関数がすでにあったりして… 無駄な
コードを書いているのは私です。(笑)

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