嗨,我是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