『壹』 易語言文本去掉重復的,留下一個重復的
.版本 2
.子程序 _判斷重復_被單擊
.局部變數 要處理的文本, 文本型
.局部變數 數組, 文本型, , "0"
.局部變數 輸出文本, 文本型
.局部變數 i, 整數型
.局部變數 重復的文本, 文本型
要處理的文本 = 到文本 (讀入文件 (「F:新建文件夾總.txt」)) ' 改成你自己要處理的文本
數組 = 分割文本 (要處理的文本, #換行符, )
.計次循環首 (取數組成員數 (數組), i)
.如果真 (數組 [i] ≠ 「」)
.如果 (尋找文本 (要處理的文本, 數組 [i], , 真) = -1) ' 也就是沒有重復,這個是理想情況。
輸出文本 = 輸出文本 + 數組 [i] + #換行符 ' 所以直接輸出
.否則
.如果真 (尋找文本 (重復的文本, 數組 [i], , 真) = -1) ' 如果存在多個同樣的文本,先判斷,然後加入「重復的文本」裡面。。如果在裡面沒有重復就算不重復了(這么寫是因為,重復的第一種文本之前沒有項目和它重復)
輸出文本 = 輸出文本 + 數組 [i] + #換行符
.如果真結束
重復的文本 = 重復的文本 + 數組 [i] + #換行符
.如果結束
.如果真結束
.計次循環尾 ()
寫到文件 (「F:系統桌面輸出文件.txt」, 到位元組集 (輸出文本)) ' 然後輸出
『貳』 怎麼去除相同文本的內容 易語言
.版本 2
原分割文本 = 分割文本 (編輯框1.內容, #換行符, )
新文本 = 「」
.計次循環首 (取數組成員數 (原分割文本), i)
輸出調試文本 (原分割文本 [i])
.如果真 (尋找文本 (新文本, 原分割文本 [i], , 真) = -1)
新文本 = 新文本 + 原分割文本 [i] + #換行符
.如果真結束
.計次循環尾 ()
編輯框1.內容 = 新文本
『叄』 求一個去重復文本工具,易語言應該可有做出來。
.版本2
.支持庫commobj
.支持庫spec
.子程序_按鈕1_被單擊
.局部變數數組1,文本型,,"0"
.局部變數結果,文本型
.局部變數i,整數型
.局部變數啟動時間,整數型
.局部變數test,快速文本對象
啟動時間=取啟動時間()
test.添加(編輯框1.內容)
數組1=分割文本(編輯框2.內容,「」,)
.計次循環首(取數組成員數(數組1),i)
.判斷開始(test.尋找文本(數組1[i],,真)=-1)
結果=結果+數組1[i]+「」
.默認
.判斷結束
.計次循環尾()
編輯框3.加入文本(結果)
調試輸出(取啟動時間()-啟動時間)
分割是按空格分割。改成你自己的分割符號。如果是逐字比較的話,就逐字分割
『肆』 求一個易語言清除文本重復內容的源碼。
.版本2
.子程序__啟動窗口_創建完畢
.局部變數文本,文本型
.局部變數文本組,文本型,,"0"
.局部變數數1,整數型
.局部變數數2,整數型
文本=到文本(讀入文件(取運行目錄()+「文本.txt」))
文本組=分割文本(文本,「,」,)
文本=「」
.如果真(取數組成員數(文本組)=0)
信息框(「在運行目錄下沒有」+#引號+「文本.txt」+#引號+「文件!」,0,)
結束()
.如果真結束
.計次循環首(取數組成員數(文本組),數1)
.如果真(文本組[數1]=「」)
到循環尾()
.如果真結束
.變數循環首(數1+1,取數組成員數(文本組),1,數2)
.如果真(文本組[數1]=文本組[數2])
文本組[數2]=「」
.如果真結束
.變數循環尾()
文本=文本+文本組[數1]+「,」
.計次循環尾()
寫到文件(取運行目錄()+「文本.txt」,到位元組集(文本))
『伍』 易語言怎麼取重復文本
實現一個隊列CQueue
CQueue提供兩個公有成員函數
addTail():往隊列尾部增加一個元素
removeHead():讀出並移除隊列的第一個元素
生產者:兩個線程通過調用CQueue::addTail()往隊列中增加元素
消費者:一個線程通過調用CQueue::removeHead()從隊列中讀取元素
#include<iostream>
#include<list>
#include<windows.h>
#include<process.h>
usingnamespacestd;
#defineP(sem)WaitForSingleObject(sem,INFINITE)
#defineV(sem)ReleaseSemaphore(sem,1,NULL)
classCQueue
{
public:
voidaddTail();//往隊列尾部增加一個元素
voidremoveHead();//讀出並移除隊列的第一個元素
private:
list<int>L;
};
CQueuebuffer;//全局的緩沖區
constintbuf_size=10;//緩沖區大小
staticintGOODS_ID=0;//商品序號
constintprocers=3;//生產者數量
constintconsumers=8;//消費者數量
voidProcerThread(void*param);
voidConsumerThread(void*param);
HANDLEempty,occupy,op_mutex;
intmain()
{
inti;
intp_id[procers],c_id[consumers];
occupy=CreateSemaphore(NULL,0,buf_size,NULL);//佔用位置
empty=CreateSemaphore(NULL,buf_size,buf_size,NULL);//空餘位置
op_mutex=CreateSemaphore(NULL,1,1,NULL);//操作互斥量
for(i=0;i<procers;++i)
{
p_id[i]=i+1;
_beginthread(ProcerThread,0,p_id+i);
}
for(i=0;i<consumers;++i)
{
c_id[i]=i+1;
_beginthread(ConsumerThread,0,c_id+i);
}
while(getchar()==' ')break;
return0;
}
voidCQueue::addTail()
{
L.insert(L.end(),++GOODS_ID);
}
voidCQueue::removeHead()
{
cout<<*L.begin()<<endl;
L.erase(L.begin());
}
voidProcerThread(void*param)
{
intid=*(int*)param;
while(1)
{
P(empty);
P(op_mutex);
Sleep(100);
buffer.addTail();
printf("Procer_%dproced%d ",id,GOODS_ID);
V(op_mutex);
V(occupy);
}
}
voidConsumerThread(void*param)
{
intid=*(int*)param;
while(1)
{
P(occupy);
P(op_mutex);
Sleep(100);
printf("Consumer_%dconsumed",id);
buffer.removeHead();
V(op_mutex);
V(empty);
}
}
『陸』 易語言 去重復文本
『柒』 易語言去重復文本
思路在此 根據需要自行修改
『捌』 易語言 去除編輯框內重復的文本
.版本 2
.子程序 _按鈕1_被單擊
.局部變數 成員, 文本型, , "0"
.局部變數 文本位置, 整數型
.局部變數 計次, 整數型
.如果真 (編輯框1.內容 ≠ 「」)
成員 = 分割文本 (編輯框1.內容, 「 」, )
.計次循環首 (取數組成員數 (成員), 計次)
文本位置 = 尋找文本 (編輯框2.內容, 成員 [計次], , 假)
.如果真 (文本位置 = -1)
到循環尾 ()
.如果真結束
編輯框2.內容 = 文本替換 (編輯框2.內容, 文本位置, 3, )
.計次循環尾 ()
.如果真結束
『玖』 易語言去除編輯框重復內容
我不會你說的那種方法,但是我想在輸出這組數的時候做些手腳,這樣你想去除的數就不會顯示出來,效果是一樣的吖
『拾』 易語言去重復。兩個或多個重復的只留一個,寫成源碼,或者直接發到這上面來,
.版本 2
.子程序 _按鈕1_被單擊
.局部變數 數組, 文本型, , "0"
.局部變數 計次, 整數型
.局部變數 計數, 整數型
編輯框2.內容 = 「」
數組 = 分割文本 (編輯框1.內容, 「,」, )
.計次循環首 (取數組成員數 (數組), 計次)
.如果真 (數組 [計次] = 「-1」)
到循環尾 ()
.如果真結束
.變數循環首 (計次 + 1, 取數組成員數 (數組), 1, 計數)
.如果真 (數組 [計次] = 數組 [計數])
數組 [計數] = 「-1」
.如果真結束
.變數循環尾 ()
編輯框2.加入文本 (數組 [計次], 「,」)
.計次循環尾 ()