嗨,我是Crystal Reports中的新成员,我正在使用Crystal Reports 2008,我想知道如何删除字符串中的字母字符,并且只保留数字。有这个功能吗?删除Crystal Report中的字母
例如:点231 /点323/USP 342 输出:231/323/342
谢谢, Captain16
嗨,我是Crystal Reports中的新成员,我正在使用Crystal Reports 2008,我想知道如何删除字符串中的字母字符,并且只保留数字。有这个功能吗?删除Crystal Report中的字母
例如:点231 /点323/USP 342 输出:231/323/342
谢谢, Captain16
使用以下公式
stringvar str;
stringvar str1;
numbervar counter;
numbervar leng;
leng := len({Your_Field});
if leng>0 then
(
for counter := 1 to leng do
(
If (Mid({Your_Field}, counter, 1)) in "a" to "z" Then
(
str1:=str1 + Mid({Your_Field}, counter, 1)
)
else
(
str := str + Mid({Your_Field}, counter, 1)
)
);
str
)
这里str
将得到非字母,而str1
将只给出您给定字符串中的字母。 {Your_Field}
可以是你的字段或包含字符串的参数。并通过打印str
字母可以删除...
231/323/342
这是我得到您输入的输出!
希望这会有所帮助,尝试并找回结果!
哇,它的作品!非常感谢.. – Captain16
这就是我的荣幸! –
对不起,我不能评论哈里哈兰Anbazhagan的代码(我没有足够的声誉,似乎)。这是很好的代码,但我会添加LCASE来捕捉所有的字母。
If LCASE(Mid({?sample}, counter, 1)) in "a" to "z" Then
如果您只想识别数字,还有一个IsNumeric()函数。
感谢您的好建议!但默认情况下,我的代码删除大写字母。提问人员Captain16只想从给定的字符串中只删除字母。因此可以通过我的代码来实现。但是,你可以帮助我在'a'到'z'中的If(Mid({Your_Field},counter,1))中添加'NOT'然后'代码?不必要的我使用其他情况,因为我不能'如果'中使用'NOT'。 –
我有机会尝试你的代码......很好!我不知道它理解大小写。我想如果你想摆脱ELSE,你可以在“a”到“z”中做'If NOT(Mid({Your_Field},counter,1))然后'。但我认为你很好,你可以看到你删除了什么。 –
你有没有考虑过使用正则表达式? – craig
你使用什么数据库? – craig