0

ストアドプロシージャを使用してVS2008(c#)のCrystal Reportsを使用して表示される長い文字列( "sara james joseph NAUMAN")があります。

  1. タイトルケースに変換したい(「サラ・ウィリアムズ・ジョセフ・ナウマン」)
  2. また、単語の間に2つ以上ある場合は、スペースを削除したいと思います。

ストアドプロシージャ、Crystal Reportsの数式、または.csファイルで変換を行う方法を知りたい。

4

3 に答える 3

2

ケーシングを修正するProperCase(str)という関数があります。

`ProperCase("sara james joseph NAUMAN")`

HariharanAnbazhaganのコードを少し借ります。文字列の前後に空白がある場合は、Trim(str)を使用してください。単語間の空白を削除する関数は思い浮かばないので、このコードがその役割を果たします。

stringvar str1;
stringvar str2;
numbervar counter;
numbervar leng;

str2 := Trim("   Big     Space   ");

leng := len(str2);
if leng>0 then
(
    for counter := 1 to leng do
    (
        If Not(Mid(str2, counter, 1) = " " and (Mid(str2, counter+1, 1)) = " ") Then
        (
            str1:=str1 + Mid(str2, counter, 1)
        )
    );
str1
)
于 2012-11-05T06:40:11.857 に答える
1

カスタム式Format()

// Format()
Function (Stringvar value, Optional Stringvar delimiter:=",")

    // create an array of formetted names (and blanks)
    // "sara james joseph       NAUMAN" => "Sara James Joseph       Nauman"
    Local Stringvar Array temp:=Split( ProperCase(value), " ");

    Local Stringvar Array values;

    Local Numbervar i;

    // remove empty array positions
    For i:= 1 To Ubound(temp) Do (

      If temp[i]<>"" Then (

        Redim Preserve values[Ubound(values)+1];
        values[Ubound(values)]:=temp[i]

      )

    );

    // delimited list
    Join(values, delimiter);

式で参照します。

// returns "Sara,James,Joseph,Nauman"
Format("sara james joseph       NAUMAN")
于 2012-11-05T18:00:54.600 に答える
0

VB.netでは、同等のものは次のとおりです。

str1 = StrConv(str1, vbProperCase)

これは、他の誰かがVB.netでこれを探している場合の参考情報です。

于 2013-07-18T17:11:32.837 に答える