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

字串處理

答題得分者是:aftcast
koach
一般會員


發表:7
回覆:2
積分:0
註冊:2006-07-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-07-15 02:53:02 IP:220.142.xxx.xxx 未訂閱
請問各位,如果有一個字串如下所示:
0000 - e3 b0 c4 42 98 fc 1c 14-9a fb f4 c8 99 6f b9 24 ...B.........o.$
我要過濾去除前面0000 - 及最後數字24後面那些符號...B.........o.$,包括e3 b0 c4 42 98 fc 1c 14-9a fb f4 c8 99 6f b9 24每個字串間的空白和-符號,變成e3b0c44298fc1c149afbf4c8996rb924該如何寫呢?


orilly
一般會員


發表:0
回覆:6
積分:6
註冊:2006-07-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-07-15 15:11:32 IP:218.168.xxx.xxx 未訂閱

1.YOU CAN USE THE STRTOK FUNCTION.

2. USE SUBSTRING FUNCTION OF sTRING.

AutoWeb
一般會員


發表:3
回覆:5
積分:1
註冊:2003-03-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-07-21 20:28:56 IP:61.219.xxx.xxx 未訂閱
如orilly所說,使用strtok和substr即可,不過strtok需要注意兩點:
1第一次傳給strtok時,要代入欲擷取的字串變數,第二次以後就傳入NULL,
如第一次:strtok(source," ");
第二次(和以後):strtok(NULL," ");
2strtok會改掉source的內容,所以如果不希望它被改掉的話,需要做一些處理
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-07-26 06:46:08 IP:61.229.xxx.xxx 未訂閱

提供一個簡單的VCL solution:

#include

void __fastcall TForm1::Button1Click(TObject *Sender)
{
String as;
as = "0000 - e3 b0 c4 42 98 fc 1c 14-9a fb f4 c8 99 6f b9 24 ...B.........o.$";
as = as.SubString(8,47);
as = AnsiReplaceStr(as,"-","");
as = AnsiReplaceStr(as," ","");
ShowMessage(as);
ShowMessage(IntToStr(as.Length()));
}

------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
koach
一般會員


發表:7
回覆:2
積分:0
註冊:2006-07-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-09-02 15:32:15 IP:140.127.xxx.xxx 未訂閱
若是不只ㄧ行,可能兩行或是三行隨機產生,以三行為例,讀入以下資料後
0000 - e3 b0 c4 42 98 fc 1c 14-9a fb f4 c8 99 6f b9 24 ...B.........o.$
0010 - 5c fe e6 7c ad 82 dd 74-02 71 1e 53 0b ec 78 2f \..|...t.q.S..x/
0020 - c0 2a ff 27 35 69 d2 2d-df fb 3b 14 5f 34 37 68 .*.'5i.-..;._47h
要截取出中間有用代碼,去除前後不要的符號,並將中間代碼的空白及-符號移除,變成
e3b0c44298fc1c149afbf4c8996f b9245cfee67cad82dd7402711e530bec782fc02aff273569d22ddf fb3b145f343768來輸出,該怎麼設計才齊備
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-09-02 19:40:58 IP:61.229.xxx.xxx 未訂閱

一行和二行或三行或n行有不一樣嗎? 不太明白你的意思…
就把每一行處理後相加起來就可以了…
還是你的問題是讀檔的問題?
還是隨時產生讓你不知道該連加幾行?

===================引 用 文 章===================
若是不只ㄧ行,可能兩行或是三行隨機產生,以三行為例,讀入以下資料後
0000 - e3 b0 c4 42 98 fc 1c 14-9a fb f4 c8 99 6f b9 24 ...B.........o.$
0010 - 5c fe e6 7c ad 82 dd 74-02 71 1e 53 0b ec 78 2f \..|...t.q.S..x/
0020 - c0 2a ff 27 35 69 d2 2d-df fb 3b 14 5f 34 37 68 .*.'5i.-..;._47h
要截取出中間有用代碼,去除前後不要的符號,並將中間代碼的空白及-符號移除,變成
e3b0c44298fc1c149afbf4c8996f b9245cfee67cad82dd7402711e530bec782fc02aff273569d22ddf fb3b145f343768來輸出,該怎麼設計才齊備
------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
系統時間:2024-05-12 21:02:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!