お知らせ

文字の一部を取得、置換、削除、挿入

Delphi

 Delphiで文字列を扱う方法のいくつかを紹介します。

AnsiLeftStr

文字列の先頭から指定文字数分を取得する時に使えます。

文字列の先頭からn文字を取得する

St: String;
St:= ‘abcdefg’;
St:= AnsiLeftStr(St,4);
//Stにはabcdが入る。

uses節

usesには、System.StrUtilsを追加します。

AnsiReplaceStr

文字列の一部を置き換える時に使えます。
大文字と小文字を区別しながら検索して、文字列内に出現する指定の部分文字列をすべて指定の文字列に置き換えます。

特定文字の置換(消去)

St: String;
St:= ‘400円’;
St:= AnsiReplaceStr(St, ‘ 円’, ”); //’ 円’を ”(文字なし)に置換
//Stには400が入る。
//AnsiReplaceStrは関数として置換後の文字列を返す。

uses節

usesには、System.StrUtilsを追加します。

Delete、Insert

Deleteは、n文字目からm文字を削除、Insertは、n文字目に文字を挿入。

n文字目からm文字を削除

St: String;
St:= ‘400円’;
Delete(St,4,1);
//四文字目から一文字削除され、Stには400が残る。

n文字目にタブ(#9)を挿入

Insert(#9,St,2);
//Stの二文字目にタブを挿入。タブ(Tab)は#9で表す。


実例紹介

楽天カードの利用のお知らせメールをスプシに貼り付ける際の文字の整形

特定フォーマットから別の特定フォーマットに整形するプログラム

procedure TForm1.Button1Click(Sender: TObject);
var
  i,n,m,num, min: Integer;
  St: String;
  SL: TStringList;
begin
  num:=-1;
  min:=0;
  for I := Memo1.Lines.Count-1 downto 0 do
  begin
    St:= Memo1.Lines[i];
    //AnsiLeftStr uses System.StrUtils
    St:= AnsiLeftStr(St,4);  //先頭4文字の取得
    if St = '支払方法' then
    begin
      Memo1.lines.delete(i);
      Memo1.lines.delete(i);
      Memo1.lines.delete(i);
      St:= Memo1.Lines[i-1];
      n:= AnsiPos(#9, St) ;  //タブ(#9)の位置を取得
      Delete(St,n,1);            //n文字目の1文字を削除
      m:= AnsiPos(#9, St) ;
      Insert(#9,St,m);           //m文字目にタブ(#9)を挿入
      Insert(#9,St,m);
      Insert(#9,St,n);
      //AnsiReplaceStr uses System.StrUtils
      Memo1.Lines[i-1]:=AnsiReplaceStr(St, ' 円', '');  //' 円'を ''に置換
      num:= num+1;
      min:= i-1

    end;
  end;

  SL:= TStringList.Create;
  for I := 0 to num do
  begin
    SL.Add(Memo1.Lines[min+I]);
  end;
  Clipboard.AsText := SL.Text;  //結果をクリップボードにコピー
  SL.Free;
end;

整形前の文字列(メールの内容)

ご利用日 ご利用先 ご利用金額


2024/06/01 GOOGLE PLAY JAPAN 480 円
支払方法:1回 | 支払月:2024/07 | 利用者:本人


2024/06/01 GOOGLE PLAY JAPAN 1,000 円
支払方法:1回 | 支払月:2024/07 | 利用者:本人


2024/06/01 GOOGLE PLAY JAPAN 1,000 円
支払方法:1回 | 支払月:2024/07 | 利用者:本人


2024/06/01 GOOGLE PLAY JAPAN 160 円
支払方法:1回 | 支払月:2024/07 | 利用者:本人


2024/06/01 GOOGLE PLAY JAPAN 480 円
支払方法:1回 | 支払月:2024/07 | 利用者:本人


合計 3,120 円

スプシ貼付結果

ソシャゲの課金はホドホドに・・・

タイトルとURLをコピーしました