線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1289
推到 Plurk!
推到 Facebook!

string子串处理再问

答題得分者是:william
KFC
一般會員


發表:43
回覆:73
積分:23
註冊:2003-03-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-15 13:13:51 IP:210.77.xxx.xxx 未訂閱
我早先问过关於字符串处理的问题。 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28525 给出了满意的答复。但现在又遇到了另一个问题,我要处理的串有如下模式 begin XXX werrwerwerwer werwerwerwerwererwerwerwer werwerwlerjwlejrlwekjrlwejrlwejrwe rwelrkwelrjlwekjrlkwejrlkjwerkwjlekrjwer werlkjelrkjwelrjwelkrjwler end 这个stringlist中包含各个转行的字串。请问怎样将begin和end(不包括begin和end)之间的字串存成另一个stringlist? 谢谢
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-15 13:49:22 IP:147.8.xxx.xxx 未訂閱
Is is an uuencoded strings? You can use StringReplace function..e.g.
with StringList1 do begin
    if Count>0 then begin
        StringList[0] := StringReplace(Stringlist[0],'begin','',[]);
        StringList[Count-1] := StringReplace(Stringlist[Count-1],'end','',[]);
    end;
end;
You can use Assign to copy the content of a string list to another string list. You may also want to interate through the string list as needed. or you want the content within begin and end only?, e.g. StringList1.Delete(0); StringList1.Delete(StringList1.Count-1); 發表人 - william 於 2003/04/15 13:51:05
KFC
一般會員


發表:43
回覆:73
積分:23
註冊:2003-03-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-15 18:07:53 IP:210.77.xxx.xxx 未訂閱
版主好厉害,就是uuencode。但是同一个stringlist中可能会有许多对begin end。如果用stringreplace就无法对每一对逐一处理了。
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-15 22:03:46 IP:210.3.xxx.xxx 未訂閱
引言:版主好厉害,就是uuencode。但是同一个stringlist中可能会有许多对begin end。如果用stringreplace就无法对每一对逐一处理了。
不會吧,uuencode 應該只在開始及結束的地方才有 begin end....
KFC
一般會員


發表:43
回覆:73
積分:23
註冊:2003-03-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-15 22:10:09 IP:210.77.xxx.xxx 未訂閱
不。一封邮件可以不止包含一个附件。而每个附件的编码都是由begin end对包起来。把整封邮件读入stringlist,你说是否有可能包含不止一对的begin end? 發表人 - KFC 於 2003/04/15 22:23:14
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-15 23:26:20 IP:210.3.xxx.xxx 未訂閱
引言:不。一封邮件可以不止包含一个附件。而每个附件的编码都是由begin end对包起来。把整封邮件读入stringlist,你说是否有可能包含不止一对的begin end? 發表人 - KFC 於 2003/04/15 22:23:14
是的,那是把多個 uencoded file 放在一起,我想你是想將他們抽出來吧, 流程太致如下
i := 0;
while i < StringList1.Count do begin
    { watch for 'begin' }
    while (i < StringList1.Count) and (Pos('begin',StringList[i])<=0) do
        inc(i);
    if (i < StringList1.Count) and (Pos('begin',StringList[i]) > 0) then begin { watch for 'end' }
        StringList2.Clear;
        while (i < StringList1.Count) and (Pos('end',StringList[i]) <= 0) do begin
            StringList2.Add(StringList[i]);
            inc(i);
        end;
        if (i < StringList1.Count) and (Pos('end',StringList[i]) > 0) then begin
            StringList2.Add(StringList[i]);
            { decode the files in StringList2 }
        end;
    end;
end;
KFC
一般會員


發表:43
回覆:73
積分:23
註冊:2003-03-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-15 23:34:59 IP:210.77.xxx.xxx 未訂閱
谢谢!已解决
系統時間:2024-11-22 20:59:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!