在RichEdit裡面限定要處理的範圍 |
尚未結案
|
wena
一般會員 發表:26 回覆:37 積分:12 註冊:2005-07-20 發送簡訊給我 |
請問一下我在RichEdit裡面做"空白"取消"換行"的工作
但是他的取代是全部做完
但我如果要限定範圍
比如:
AAAAA
BBB
CCCCC
DDD
我只限定二、三行讓它變成
AAAAA
BBB CCCCC DDD
那我該如何寫這一段
我原先的寫法如下(但沒成功):
for ( i = 3 ;i >= 1 ; i-- ) { temp = RichEdit1->Lines->Strings[i]; if(i>=2) //只處理二、三行 { StringReplace(temp , "\r\n", " ", TReplaceFlags() << rfReplaceAll ); } RichEdit2->Lines->Strings[i] = temp; } |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
wena 您好: 您沒有說明是否有其它的條件或是需求?因此我針對您的說明寫了一個範例如下,參考看看吧:
AnsiString NewStr = ""; AnsiString temp; int joinStart = 1; // 寫成變數較具彈性,此例設定第二行 (含) 之後的資料予以合併 for (int i = 0 ;i <= 3 ; i ) { temp = RichEdit1->Lines->Strings[i]; if (RichEdit2->Lines->Count < joinStart) { RichEdit2->Lines->Add(""); // 確保 RichEdit2 有相對於 RichEdit1 的行數 } if (i >= joinStart) { // 除第一行之外,均合併至 NewStr if(NewStr.Length() > 0){ // 第一個字串之後,均加上空白來分隔 NewStr = NewStr " "; } NewStr = NewStr temp; // 合併資料行 }else{ RichEdit2->Lines->Strings[i] = temp; // 不在合併範圍的資料行直接設給 RichEdit2 } } RichEdit2->Lines->Strings[joinStart] = NewStr; // 將合併資料設給 RichEdit2 的第 joinStart 行7 天天敲鍵盤 v 時時按滑鼠 8 |
bass15
高階會員 發表:24 回覆:171 積分:119 註冊:2003-10-27 發送簡訊給我 |
插個花..
void __fastcall TForm1::Button1Click(TObject *Sender) { int iLine = 1; //設定前iLine行不轉 int iLineTmp = iLine; AnsiString sTemp; RichEdit2->Text = RichEdit1->Text; if(RichEdit2->Lines->Count <= iLine) return; while(iLineTmp > 0 && RichEdit2->Lines->Count) //先把前iLine行去掉 { RichEdit2->Lines->Delete(0); iLineTmp -- ; } //然後將剩下的字取出而且替換 sTemp = RichEdit2->Text; sTemp = StringReplace(sTemp , "\r\n", " ", TReplaceFlags() << rfReplaceAll ); RichEdit2->Lines->Clear(); iLineTmp = iLine; //把前iLine行加回去 for(int i=0; i |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |