《軟體自動化測試成功之道》節選11 - 常用指令碼函式的封裝
《軟體自動化測試成功之道》節選11 - 常用指令碼函式的封裝
http://www.china-pub.com/196509
專案回顧>>>
2008-5-29
今天發現很多地方需要使用到字串的操作,而DelphiScipt的字串操作函式不大好用,因此有必要把常用的一些字串操作封裝成函式,已備呼叫。
(1) 替換字串
//.............................................................................
// 目的:替換字串
// 輸入引數:
// Str:待替換的字串
// StrTobeRep:需要被替換掉的字串
// StrRep:替換的字串
// 返回結果:替換後的字串
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_RePlace(Str,StrTobeRep,StrRep);
begin
Str := dotNET.System_Text.StringBuilder.zctor(Str);
Str := Str.RePlace_2(StrTobeRep,StrRep).ToString;
Result := Str;
end;
Procedure Test_String_RePlace;
Var Str : OleVariant;
begin
Str := String_RePlace('D:/Code/FileSelctionDialog/FileSelctionDialog/bin/Debug','D:','|桌面|我的電腦|本地磁碟 (D:)');
Log.Message(String_RePlace(Str,'/','|'));
end;
這裡使用的是.NET類庫中的StringBuilder物件,另外,也可以使用Utilities物件中的StringReplace來替換字串:
Procedure Test_String_RePlace_2;
Var Str : OleVariant;
begin
Str := Utilities.StringReplace('D:/Code/FileSelctionDialog/FileSelctionDialog/bin/Debug','D:','|桌面|我的電腦|本地磁碟 (D:)',1);
Log.Message(Utilities.StringReplace(Str,'/','|',1));
end;
其中StringReplace的第三個引數是一個標誌位,可以使用以下兩個值:
1:是否替換所有。如果沒有使用該值,則僅替換找到的第一個。
2:是否大小寫敏感。使用該值表示大小寫不敏感地匹配,不使用該值則表示大小寫敏感。
(2)分割字串
//.............................................................................
// 目的:分割字串
// 輸入引數:
// Str:待替換的字串
// Separator:分割符
// 返回結果:分割後的字串儲存在陣列並返回
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_Split(Str,Separator);
Var StringArray,Count ,I: OleVariant;
begin
StringArray := CreateVariantArray(0,0);
Count := BuiltIn.GetListCount(Str, Separator);
VarArrayRedim(StringArray,Count);
For I:=0 to Count - 1 do
begin
StringArray[I] := BuiltIn.GetListItem(Str , I , Separator);
end;
Result := StringArray;
end;
Procedure Test_String_Split;
Var StringArray,I : OleVariant;
begin
StringArray := String_Split('D:/Code/FileSelctionDialog/FileSelctionDialog/bin/Debug','/');
For I := 0 to VarArrayHighBound(StringArray,1)-1 do
begin
Log.Message(StringArray[I]);
end;
end;
(3)讀取部分字串
//.............................................................................
// 目的:讀取字串中的一部分
// 輸入引數:
// Str:待讀取的字串
// StartIndex:開始讀取的Index位置
// EndIndex:結束讀取的Index位置
// 返回結果:讀取到的部分字串
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_SubString(Str,StartIndex,EndIndex);
begin
Str := dotNET.System_Text.StringBuilder.zctor(Str).ToString;
Str := Str.SubString(StartIndex,EndIndex).ToString;
Result := Str;
end;
Procedure Test_String_SubString;
begin
Log.Message(String_SubString('1234567890',0,2));
end;
這裡使用的是.NET類庫中的StringBuilder物件的SubString函式,另外,也可以使用使用DelphiScript的Copy函式來讀取字串中的一部分:
// 使用DelphiScript的Copy函式來讀取字串中的一部分
Procedure Test_String_SubString_2;
var Str : OleVariant;
begin
Str:='1234567890';
Log.Message(Copy(Str,2,5));
Log.Message(Copy(Str,2, 20));
Log.Message(Copy(Str,-2,3));
Log.Message(Copy(Str,2,0));
end;
(4)查詢字串
查詢字串可以使用.NET的String物件的Contains函式,用於確定是否包含指定的字串:
//.............................................................................
// 目的:查詢字串是否包含指定的字串
// 輸入引數:
// Str:待查詢的字串
// SubStr:被查詢的字串
// 返回結果:
// True:包含指定的字串
// False:不包含指定的字串
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_Contains(Str,SubStr);
begin
Str := dotNET.System_Text.StringBuilder.zctor(Str).ToString;
Result := Str.Contains(SubStr);
end;
Procedure Test_String_Contains;
begin
Log.Message(String_Contains('01234567890','456'));
end;
另外,也可以使用DelphiScript提供的Pos函式來判斷是否出現指定的字串,如果包含,則返回第一個出現的位置;如果不包含,則返回False值,如下程式碼所示:
//.............................................................................
// 目的:查詢字串是否包含指定的字串
// 輸入引數:
// Str:待查詢的字串
// SubStr:被查詢的字串
// 返回結果:
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_Contains_2(Str,SubStr);
Var Index :OleVariant;
begin
Result := False;
Index := Pos(SubStr,Str);
IF Index > 0 then
Result := Index;
end;
Procedure Test_String_Contains_2;
begin
Log.Message(String_Contains_2('01234567890','456'));
end;
(5)匹配開頭字串
//.............................................................................
// 目的:判斷字串是否以指定的字串開頭
// 輸入引數:
// Str:待查詢的字串
// SubStr:開頭的字串
// 返回結果:
// True:字串以指定的字串開頭
// False:字串不以指定的字串開頭
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_StartsWith(Str,SubStr);
begin
Str := dotNET.System_Text.StringBuilder.zctor(Str).ToString;
Result := Str.StartsWith(SubStr);
end;
Procedure Test_String_StartsWith;
begin
Log.Message(String_StartsWith('01234567890','123'));
end;
(6)匹配結尾字串
//.............................................................................
// 目的:判斷字串是否以指定的字串結尾
// 輸入引數:
// Str:待查詢的字串
// SubStr:結尾的字串
// 返回結果:
// True:字串以指定的字串結尾
// False:字串不以指定的字串結尾
// 注意事項:
// 作者:陳能技
// 日期:2008-5-29
//.............................................................................
Function String_EndsWith(Str,SubStr);
begin
Str := dotNET.System_Text.StringBuilder.zctor(Str).ToString;
SubStr := dotNET.System_Text.StringBuilder.zctor(SubStr).ToString;
Result := Str.EndsWith(SubStr);
end;
Procedure Test_String_EndsWith;
begin
Log.Message(String_EndsWith('01234567890','1230'));
end;
《軟體自動化測試成功之道》節選11 - 常用指令碼函式的封裝
相關文章
- 《軟體自動化測試成功之道》節選12 - 自動化測試指令碼的維護指令碼
- 《軟體自動化測試成功之道》節選1 - 選擇合適的專案實施自動化測試
- 《軟體自動化測試成功之道》節選3 - DOM與IE Developer ToolBarDeveloper
- 《軟體自動化測試成功之道》節選6 - 自定義控制元件的測試方法控制元件
- 《軟體自動化測試成功之道》節選8 - 與每日構建結合
- 《軟體自動化測試成功之道》目錄
- 《軟體自動化測試成功之道》節選9 - 非預期視窗的處理
- 新書《軟體自動化測試成功之道》出版新書
- 《軟體自動化測試成功之道》節選5 - 第三方控制元件的測試方法控制元件
- 《軟體自動化測試成功之道》節選10 - 資料庫連線配置問題資料庫
- 《軟體自動化測試成功之道》節選2 - 對控制元件的熟悉程度與自動化測試成功實施之間的關係控制元件
- 《軟體自動化測試成功之道》隨書附帶原始碼原始碼
- 《軟體自動化測試成功之道》學習資源
- 《軟體自動化測試成功之道》節選7 - “白+黑” - 檢查資料庫的資料資料庫
- 《軟體自動化測試成功之道》附帶的光碟說明
- 《軟體自動化測試成功之道》節選4 - 標準控制元件的特殊問題的處理方法控制元件
- 《軟體自動化測試成功之道》內容簡介和前言
- python+pytest介面自動化(11)-測試函式、測試類/測試方法的封裝Python函式封裝
- 軟體測試筆記——11.自動化測試和手動測試的選擇筆記
- python+pytest介面自動化之測試函式、測試類/測試方法的封裝Python函式封裝
- 軟體測試:自動化測試
- 軟體測試自動化
- 恰當選擇軟體測試自動化方案
- 前端ui自動化測試sdk封裝前端UI封裝
- 軟體測試自動化框架框架
- 軟體測試框架——自動化測試框架框架
- Python自動化測試~PO模型封裝Python模型封裝
- JMeter 介面自動化測試(手工轉自動化指令碼)JMeter指令碼
- 軟體測試理論(2)自動化測試
- 通用自動化測試軟體 — TAE
- [python] request 介面測試自動化指令碼轉化為 [locust] 效能測試指令碼Python指令碼
- 從功能測試轉成自動化測試,軟體測試工程師該如何成功轉型?工程師
- 軟體測試自動化的最新趨勢
- 軟體開發中的自動化測試
- 前端常用函式封裝前端函式封裝
- 常用js函式封裝JS函式封裝
- Eggplant—HMI 自動化測試軟體
- 談軟體自動化測試工具的評測方法