為輸入及輸出的數(shù)據(jù)庫(kù)的資料做造型
發(fā)表時(shí)間:2023-08-11 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]在討論區(qū)上有許多網(wǎng)友問(wèn)到按怎處理雙引號(hào)的問(wèn)題, 擱有網(wǎng)友問(wèn)到由資料庫(kù)抓出來(lái)的資料無(wú)法斷行的問(wèn)題, 其實(shí)在 VBscript 有一支 Replace 函數(shù)可以來(lái)幫助咱們處理這款問(wèn)題, 所以今日的文章就...
在討論區(qū)上有許多網(wǎng)友問(wèn)到按怎處理雙引號(hào)的問(wèn)題, 擱有網(wǎng)友問(wèn)到由資料庫(kù)抓出來(lái)的資料無(wú)法斷行的問(wèn)題, 其實(shí)在 VBscript 有一支 Replace 函數(shù)可以來(lái)幫助咱們處理這款問(wèn)題, 所以今日的文章就要來(lái)討論用 Replace 來(lái)替資料做造型
Replace 函數(shù)
一開始還是來(lái)看看 Replace 的語(yǔ)法
Replace(搜尋字串, 字串甲, 字串乙[, 開始位置][, 計(jì)數(shù)][, 比較方式]]]))
意思是這樣的: 由 搜尋字串 的 開始位置 找起, 找出字串甲, 並將它置換成 字串乙, 總共要做 計(jì)數(shù) 次
比較方式可以是下底的值
vbBinaryCompare - 0 (預(yù)設(shè)值), 二進(jìn)位比較, 也就是大小寫區(qū)分
vbTextCompare - 1 , 文字模式比較, 不區(qū)分大小寫
VBscript 字串常數(shù)
這裡列出一些 VBscript 的字串常數(shù)供大家參考
常數(shù) 值 說(shuō)明
vbCr Chr(13) Carriage Return
vbCrLf Chr(13) & Chr(10) Carriage Return and Line Feed
vbLf Chr(10) Line Feed
vbNewLine Chr(13) & Chr(10) 或 Chr(10) New Line
vbTab Chr(9) Tab (horizontal)
處理單雙引號(hào)
現(xiàn)在就先來(lái)看看討論區(qū)上最常問(wèn)到的問(wèn)題, 由於在下 SQL 指令如 Insert, Update, 你會(huì)將資料用單引號(hào)包起來(lái), 就親像按呢
Update SomeTable Set Col001='你的資料' Where Col002='條件'
但如果你的資料中含有單(雙)引號(hào), 那麼 SQL 就會(huì)搞不清楚這是資料的分隔符號(hào)或是資料本身, 因此我們必須要利用 Replace 函數(shù)把單引號(hào)再重複一次, 按呢 SQL 才會(huì)懂這是資料一部份, 至於雙引號(hào)部分由於使用 Replace(String, """, """") 似乎是行不通, 因此咱們使用另一個(gè)方式 - ASCII 碼, 雙引號(hào)的 ASCII 碼為 34 , 因此我們將 CHR(34) 置換為 CHR(34), 雖然沒有換不過(guò)至少騙過(guò) SQL Server, 達(dá)成目的就好, 好! 來(lái)看看函數(shù)按怎寫
Function FormatQuote(String)
On Error Resume Next
String = Replace(String,"'","''")
String = Replace(String,chr(34),chr(34))
FormatQuote = String
End Function
輸出資料斷行
擱來(lái)來(lái)看第二個(gè)問(wèn)題 - 資料由資料庫(kù)拉出後在 HTML 格式上無(wú)法斷行的問(wèn)題, 這個(gè)問(wèn)題是很正常的, 因?yàn)樵?HTML 上的換行是 <br> 所以它不認(rèn)識(shí) Line Feed - CHR(10) 和 Carriage Return - CHR(13), 同款的利用 Replace 函數(shù)來(lái)做處理, 將其轉(zhuǎn)換成為 HTML 的 <p> 或是 <br> , 另外由於 HTML 只認(rèn)一個(gè)空白字元, 所以也要對(duì)空白字元做處理, 將其轉(zhuǎn)換成 , 最後的考量就是 HTML 的標(biāo)籤分隔符號(hào) < > , 如果你的資料中有可能含有這樣的格式, 你可以加上第 6, 7 行
Function FormatStr(String)
On Error Resume Next
String = Replace(String, CHR(13), "")
String = Replace(String, CHR(10) & CHR(10), "<P>")
String = Replace(String, CHR(10), "<BR>")
String = Replace(String, CHR(32), " ")
String = Replace(String, "<", "<")
String = Replace(String, ">", ">")
FormatStr = String
End Function
希望這篇文章對(duì)你有幫助!