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

載入文字檔後殺除其中重覆輸入的字元

答題得分者是:herbert2
mihopaul
一般會員


發表:25
回覆:59
積分:16
註冊:2002-03-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-11-06 17:34:33 IP:202.154.xxx.xxx 訂閱
Hi  all

假設 使用一個Memo 載入一個文字檔,想殺除其中重覆的字元,然後另存一區來做處理
文字檔內容可能中英文交雜,不過字數最多255個,該如何處理呢??

謝謝你的閱讀^^
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-11-16 17:41:06 IP:202.39.xxx.xxx 訂閱
用迴圈一次一 Byte, 遇中文 Lead Byte 則抓2 Bytes,
與新的 AnsiString 比對, 新字則加入新的 AnsiString, 否則不加入,
(但遇 Char(10), Char(13) 則一律加入)
最後用新的 AnsiString 替換掉 TMemo->Lines.
mihopaul
一般會員


發表:25
回覆:59
積分:16
註冊:2002-03-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-11-20 18:58:39 IP:203.73.xxx.xxx 訂閱
謝謝你的答案, 我這邊用了BCB2010 ,所以元件已有支持unicode
所以用下列程式可以完成需求

[code cpp]
for(i = 0; i < Font_MemoFontString->Lines->Count; i )
{
sLine = Font_MemoFontString->Lines->Strings[i];

iFontLen = sLine.Length();

for(j = 1; j <= iFontLen; j )
{
bRepeatCode = 0;

sFont = sLine.SubString(j, 1);

if(sFont == " ") continue;

for(k = 0; k < iFontNum; k )
{
if(pstrFontCode[k] == sFont)
{
bRepeatCode = 1;
break;
}
}

if(!bRepeatCode)
{
pstrFontCode[iFontNum ] = sFont;
}
}
}
[/code]


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