区切り文字のある文字列の一部を取得するには。

解決


ぺろ  2009-05-21 03:20:45  No: 34484

一定のデータ列と区切り文字があるファイルを

Time>10.88
Time>14.02
Time>08.55
Time>44.88

このようなデータがあるファイルから、数値の部分だけ取り出すのは、どうやるのが一番シンプルですか?
一番、かっこいいでしょうか?(もちろん、他の方法も。

まぁ、漠然と
ファイルを関連づけて、
while ループ //データがある限りループ。
  //文字列から、文字を空白に置換。(ただし、一度だけ〜♪
  s := StringReplace(sLine,'Time>','',[])

ってのを考えたんですが、、、個人的にあんまりかっこよくないなー、と。
もっと適当な関数とかないでしょうか?


igy  2009-05-21 05:23:33  No: 34485

Pos 関数(場合によってはAnsiPos 関数)とCopy 関数はどうですか?


まちだ  2009-05-21 08:30:58  No: 34486

igyさんの回答が汎用的でいいと思います。
が、変り種ってことで。(笑)

今回の課題のように削除する文字列が固定&同じものが続くのであれば
Delete関数が使えます。

今回の場合はこんな感じ?
// sLineの頭5文字を削除します。
Delete(sLine,1,5);

個人的には
StringListに読み込み
Delimiterプロパティで区切り文字を設定
DelimitedTextで分離
なんていうのが好みですが、そこまで考える必要はなさそうですね。


ぺろ  2009-05-21 09:50:59  No: 34487

うわー、Deleteすっかり忘れていました。^^;

DelimiterやStringList.Valuesとか、調べたんですが。

個人的に、プログラムが短い・見やすい、処理が早そう、汎用性がある、、、ってのが、かっこいいものと考えています。
なので、今回はDeleteを使いたいと思います。

間抜けな質問でしたが、丁寧に回答して頂きありがとうございます。^^


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加