奇狐社區論壇
在這個頁面顯示本主題全部的 2 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 軟體建議 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=37)
-- str 函數 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=11034)


由 alpha 在 2009-02-09 23:22 發表:

str 函數

建議能增加幾個常用的字串函數

(1)

GetStrByWall( s, n ,wall ) // 取出第幾個字串

例如

GetStrByWall( 'A,B,C,D,E,F,G,H', +5, ',' ); --> "從左往右找" 取出第5個字串, 得到字串 'E';

GetStrByWall( 'A,B,C,D,E,F,G,H', +2, ',' ); --> "從左往右找" 取出第2個字串, 得到字串 'B';

GetStrByWall( 'A,B,C,D,E,F,G,H', -2, ',' ); --> "從右往左找" 第2個字串, 得到字串 'G';

(2)
StrCount ( );

例如

StrCount ( 'A/B/C/D/E/F/G/H', '/' ) ;

得到 以 '/' 作為區隔的字串共有 8 個

(3)

GetStrStart( s , s2, n ) // 計算 s2 第 n 次出現的位置

例如:

GetStrStart( 'AB,FF, AB,GG ' , 'AB', 2 ) ;
"從左往右找" 得到 AB 第 2 次出現的位置在 7

"從右往左找" GetStrStart('AB,FF, AB,GG ' , 'AB', -2 ) ;
得到 AB 第 2 次出現的位置在 1;



(4)
GetStrIn2Wall( )

例如

GetStrin2Wall( 'A 123 B 456 C 789 A 000 B 333 C 555 ' , 'A','B' ,2) ;

取出夾在 'A' , 'B' 中間的字串 , 而且是第2 個
得到 ' 000 ';

(5)

StrReplace() 取代

Replace('A111A222 ', 'A', 'GG') ;

得到 'GG111GG222'

(6)

StrInsert() 插入

例如:

StrInsert( '123456789' , 5 , ' AAA ' ,1) ;

'前插' 得到 '1234 AAA 56789'

StrInsert( '123456789' , 5 , ' AAA ' ,-1) ;

'後插' 得到 '12345 AAA 6789'

(7)

StrInsertBy位置() 依位置插入

例如:

StrInsertBy位置( '123456789' , 5 , '@@@' , 1) ;

'前插' 得到 '1234@@@89'

'後插' 得到 '12345@@@9'

(8)

StrRepeat()

例如

StrRepeat( 'ABC' , 3) ; // 'ABC' 重複 3 次

得到 'ABCABCABC';

可以用來
(a) 方便排版 ( 版面欄位大小配置 )
(b) 預配一個空間 , 配合函數 StrInsertBy位置() , 對於巨量字串相連接時 , 會比 str1 + str2 + str3...來的快很多



======================

以上全部都能由奇狐現有的函數 , 拼裝出來 , 但是有些很麻煩哩 , 不斷的裸碼內嵌換來就是程式碼的膨脹和不好維護

__________________
偶而是不是也感覺有些老
像個大人般的戀愛
有時心情糟
請你相信我在你身邊別忘了


由 cgjj 在 2009-02-13 17:04 發表:

謝謝您的建議, 會反應給博庭


全部時間均為台灣時間, 現在時間為20:26
在這個頁面顯示本主題全部的 2 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.