我有一个长字符串(“sara james joseph NAUMAN”),它使用存储过程在 VS2008(c#)中使用 Crystal Reports 显示。
- 我想将其转换为标题大小写(“Sara Williams Joseph Nauman”)
- 如果单词之间有两个以上,我也想删除空格。
我想知道如何在存储过程、Crystal Reports 公式或 .cs 文件中进行转换。
我有一个长字符串(“sara james joseph NAUMAN”),它使用存储过程在 VS2008(c#)中使用 Crystal Reports 显示。
我想知道如何在存储过程、Crystal Reports 公式或 .cs 文件中进行转换。
有一个名为 ProperCase(str) 的函数可以修复大小写。
`ProperCase("sara james joseph NAUMAN")`
借用一点 Hariharan Anbazhagan 的代码;如果字符串前后有空格,请使用 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 中寻找它。