全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2398
推到 Plurk!
推到 Facebook!

使用SplitString來拆解字串內多於空白會產生錯誤

答題得分者是:jow
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-16 19:16:37 IP:220.131.xxx.xxx 訂閱
使用SplitString來拆解字串內多於空白會產生錯誤
各位前輩及版主大人:
想請教一下我有一個字串內容為如下
S:= #0' INPUT g_zyw01 g_zyw02 WITHOUT DEFAULTS FROM zyw01 zyw02 ';
但是使用卻會產生L=0的結果,我欲取得的結果是8
L := SplitString(S, Delimiter);
Result := L.Count;
不知道錯誤在哪裡,希望各位給予解答,Debug好久!

function SplitString(S, Delimiter: string): TStringList;
begin
// ¤À³Î¦r¦ê
Result := TStringList.Create;
// Result.Text := StringReplace(S, Delimiter, #13, [rfReplaceAll]);
Result.Text := StringReplace(S, Delimiter, #13, [rfReplaceAll, rfIgnoreCase]);
end;
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
g9221712
高階會員


發表:145
回覆:344
積分:162
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-16 19:37:20 IP:59.120.xxx.xxx 訂閱
補充

// 如下我希望取出來的分割數量是3,而非5
ShowMessage(IntToStr(GetSplitStringItemCount('A B C', ' ')));

function GetSplitStringItemCount(S, Delimiter: string): Integer;
var
L: TStringList;
i: Integer;
NewStr: string;
begin
L := SplitString(S, Delimiter);
Result := L.Count;
end;
function SplitString(S, Delimiter: string): TStringList;
begin
Result := TStringList.Create;
Result.Text := StringReplace(S, Delimiter, #13, [rfReplaceAll]);
end;
我曾經改寫如下,但是取出的數量變成0,不知道該如何改正,
才能將字串內多餘的空白視為一個
function GetSplitStringItemCount(S, Delimiter: string): Integer;
var
L: TStringList;
i: Integer;
NewStr: string;
begin
if Delimiter = ' ' then
begin
NewStr := '';
for i := 0 to Length(S) do
begin
if ((i > 0) and (s[i - 1] = ' ') and (s[i] = ' ')) then
begin
NewStr := NewStr '';
end
else
begin
NewStr := NewStr s[i];
end;
end;
s := NewStr;
end;
L := SplitString(S, Delimiter);
Result := L.Count;
end;
------
「人們所以覺得寂寞,是因為他們會築牆,卻不會搭橋。」
程式寫的越久,卻發現自己越來越不會寫程式!
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-11-16 21:15:31 IP:123.193.xxx.xxx 訂閱
簡單處理一下, 將空白字串的項目移除




for I := Result.Count-1 downto 0 do
if Trim(Result[I]) then Result.Delete(I);

編輯記錄
jow 重新編輯於 2007-11-16 21:16:02, 註解 無‧
系統時間:2024-04-29 15:56:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!