お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"区切りのある文字列から切り出し"





{
デリミタ(delimiter)区切りの文字列から希望する番目(0,1,2...)の文字列をか
えす 
デリミタは半角1文字
指定デリミタ区切りの文字列でない場合には文字列そのものを返す
ただし、1カラム目から最初の文字列までの間にある半角スペース,
および最後の文字列から改行マークまでの半角スペースはデリミタとして扱わな
い
デリミタに半角スペースが指定されている場合には
文字列の途中にある連続した半角スペースは一つの半角スペースとして扱われる。
}
function TForm1.OrderStr(delimiter:string; letters:string;
                                           order:integer):string;
var
   leng:integer;
   NextPosOfComma:integer;
   ReavLetter:string;
   count:integer;
   OrderLength:integer;
begin
     inc(order);
     leng := length(letters);
     //デリミタが半角スペースの場合、
     //文字列中に半角スペースが二つ続いている場合には一つに置き換える
     if delimiter=' ' then
        while Pos('  ', letters) > 0 do
              delete(letters,Pos('  ', letters),1);
     ReavLetter := trim(letters);
     for count := 1 to order do begin
         NextPosOfComma := Pos(delimiter,ReavLetter);
         if NextPosOfComma <> 0 then begin
            OrderLength := NextPosOfComma-1;
            OrderStr := copy(ReavLetter,1,OrderLength);
            ReavLetter :=copy(ReavLetter,
                         NextPosOfComma+1,leng-NextPosOfComma);
            end
         else
             OrderStr := ReavLetter;
         end
end;
//----------------------------------------------------------------//
//使用例
var
   abc:='20:こんにちわ:konnichiwa:456';

  OrderStr(':',abc,1)  //='こんにちわ'

//----------------------------------------------------------------//
凛さんの『動けば可』という言葉(#00001)に勇気づけられまして、普段仕事の中
で多用している自作の関数をアップしました。変数名に変なネーミングのものも
ありますが(-_-;)..皆さんのご批評をいただけたらうれしいです。

                                     97/11/10(月) 12:42 テンプル(NAE01563)

Original document by テンプル        氏 ID:(NAE01563)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum