Object Oriented XBASE Forum


VFPToolkit.strings CLASS

文字列を取り扱うstrings CLASSについて解説します。具体的なプログラミングの方法については、VFPToolkit.dialogs CLASSの解説をあらかじめご参照ください。
C#におけるMethodのSyntax体系は、XBASE言語体系を踏襲しています。ここでは、利用の多いXBASE言語互換のMethodを取り上げて解説します。ここで取り上げないメソッドはヘルプでご確認ください。


クラスの使用を下記のように宣言します。

using VfpDialog = VFPToolkit.dialogs;
using VfpStr = VFPToolkit.strings;


 

メソッド サンプルコード
AllTrim / Trim( )
文字列の前後の空白を除去
LTrim( )
文字列の先頭側の空白を除去
RTrim()
文字列の後側の空白を除去
Len( )
文字列の文字数を戻す
private void button1_Click(object sender, System.EventArgs e)
{
    string sText = "   前後に3スペースづつ   ";
    VfpDialog.MessageBox("AllTrim>"+VfpStr.AllTrim(sText)+"<\n"
        +VfpStr.LTrim(sText)+"<\n"
        +VfpStr.RTrim(sText)+"<");
    VfpDialog.MessageBox(VfpStr.Str(VfpStr.Len(sText)));
}
// 文字数は半角も全角も1文字と数えられます。バイト数ではありません
      
Asc( )
半角文字をアスキーコード数値に変換
Chr( )
アスキーコードを文字に変換
Str( )
数値を文字列に変換
Val( )
文字型で与えられた半角数字文字列を数値に変換
private void button1_Click(object sender, System.EventArgs e)
{
    VfpDialog.MessageBox("Aのアスキーコードは" + VfpStr.Str(VfpStr.Asc('A')));
    VfpDialog.MessageBox("Chr(65)は" + VfpStr.Chr(65));
    VfpDialog.MessageBox("999+1="+VfpStr.Str(VfpStr.Val("999")+VfpStr.Val("1")));
}
At( )
At("検索字","検索する対象文字列"[ ,出現数])
対象文字列から検索する文字の出現位置を
返す。[出現数]は省略可。先頭から検索し指定
出現数のところでの先頭からの文字位置を返す
RAt( )
At()とは逆に対象文字列の終端から出現する
位置を探すが戻り値は文字列の先頭からの値
StrTran( )
StrTran("変換文字列","検索文字列","置換文字列")
変換文字列に検索文字が含まれているかを探し
存在があれば置換文字列で置き換える
private void button1_Click(object sender, System.EventArgs e)
{
    VfpDialog.MessageBox(VfpStr.Str(VfpStr.At("GH","ABCGFGHIJK")));
    VfpDialog.MessageBox(VfpStr.Str(VfpStr.At("C","ABCDCDA",2)));
    VfpDialog.MessageBox(VfpStr.Str(VfpStr.RAt("GH","ABCGFGHIJK")));
    VfpDialog.MessageBox(VfpStr.Str(VfpStr.RAt("C","ABCDCDA",2)));
    VfpDialog.MessageBox(VfpStr.StrTran("東京都新宿区新宿","新宿","港"));
}
// StrTranは変換位置や変換数も指定できるとヘルプにありますが
  正常に動作しないようです。
Space( )
Space(数値) 指定数値分のスペース文字列に変換
Replicate( )
Replicate("文字列",繰り返し数値)
指定文字列を指示数値分繰り返し、文字列を構成
SubStr( )
SubStr("文字列",切り出し先頭文字位置,切り出す文字数)
文字列の指定先頭文字位置から文字数を切り出す
PadC( ) / PadL( ) / PadR( )
PadC("文字列",整形数値[ ,'囲み文字'])
PadL("文字列",整形数値[ ,'左埋め込み文字'])
PadR("文字列",整形数値[ ,'右埋め込み文字'])
既存文字列に指示文字を付加して指定文字数に整形
PadCは前後に振分け、PadLは先頭側、PadRは後方側
埋め込み文字を省略の場合はスペースとなる
private void button1_Click(object sender, System.EventArgs e)
{
    VfpDialog.MessageBox("20バイトのスペース>"+VfpStr.Space(20)+"<");
    VfpDialog.MessageBox(VfpStr.Replicate("あい",10));
    VfpDialog.MessageBox(VfpStr.SubStr("東京都新宿区西新宿",4,3));
    VfpDialog.MessageBox(VfpStr.PadC("あいう",10,'#'));
    VfpDialog.MessageBox(VfpStr.PadL("あいう",10,'*'));
    VfpDialog.MessageBox(VfpStr.PadR("あいう",10,'&'));
}
StrToFile( )
StrToFile("書き込む文字列","ファイル名"[ ,true])
指定ファイルに文字列を出力 ファイルが無ければ
新規に作成し第3パラメータを省略すると上書き保存
となる、trueを付加するとアペンドで既存ファイルの
終端に付加して保存
FileToStr( )
FileToStr("ファイル名")
指定テキストファイルから内容を文字列データとして
取得する
private void button1_Click(object sender, System.EventArgs e)
{
    string cfMyDoc 
      = System.Environment.GetFolderPath(
          System.Environment.SpecialFolder.Personal);
    string sText = "テストデータの書き込み\r\n";
    cfMyDoc = cfMyDoc + "\\STRTOFILETEST.TXT";
    VfpDialog.MessageBox(cfMyDoc);
    VfpStr.StrToFile(sText,cfMyDoc);
    sText = "さらに追加のテキストも簡単に書き込める\r\n";
    VfpStr.StrToFile(sText,cfMyDoc,true);
    VfpDialog.MessageBox("書き込み内容は:\n"+VfpStr.FileToStr(cfMyDoc));
    System.Diagnostics.Process.Start("notepad.exe",cfMyDoc);
}
// cfMyDocはマイドキュメントフォルダーを示す


ただ今製作中です。ご迷惑をおかけいたします。