ストアドプロシージャを使用してVS2008(c#)のCrystal Reportsを使用して表示される長い文字列( "sara james joseph NAUMAN")があります。
- タイトルケースに変換したい(「サラ・ウィリアムズ・ジョセフ・ナウマン」)
- また、単語の間に2つ以上ある場合は、スペースを削除したいと思います。
ストアドプロシージャ、Crystal Reportsの数式、または.csファイルで変換を行う方法を知りたい。
ストアドプロシージャを使用してVS2008(c#)のCrystal Reportsを使用して表示される長い文字列( "sara james joseph NAUMAN")があります。
ストアドプロシージャ、Crystal Reportsの数式、または.csファイルで変換を行う方法を知りたい。
ケーシングを修正する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
)
カスタム式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")
VB.netでは、同等のものは次のとおりです。
str1 = StrConv(str1, vbProperCase)
これは、他の誰かがVB.netでこれを探している場合の参考情報です。