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

請問StringReplace的用法?

尚未結案
wena
一般會員


發表:26
回覆:37
積分:12
註冊:2005-07-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-31 23:02:57 IP:220.141.xxx.xxx 未訂閱
在我的程式裡使用了下列的語法 StringReplace(temp, "\r\t", " ", TReplaceFlags()< 這個語法很好用,省去了我很多麻煩 我想問的是,它會幫你整篇文章都照你的意思去取代 但我能不能限定它的範圍,比如我只要前面三行作取代的處理 後面都不要… 謝謝!
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-31 23:42:49 IP:211.22.xxx.xxx 未訂閱
使用Memo或者是RichEdit嗎?請參考: TMemo及TRichEdit的Lines及Count屬性,就會寫了。 class="code"> int i; AnsiString TempStr; for ( i = 0 ;i < Memo1->Lines->Count ; i ) { TempStr = Memo1->Lines[i].Text; if ( i < 3 ) StringReplace(TempStr , "\r\t", " ", TReplaceFlags() << rfReplaceAll ); //只改前三行 } ---------------------------------------------- We will either find a way, or make one. -Hannibal -。
wena
一般會員


發表:26
回覆:37
積分:12
註冊:2005-07-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-01 17:59:52 IP:218.162.xxx.xxx 未訂閱
嗯!謝謝 我照著你的方式進行了 但現在遇到一個問題 我在開頭的程式寫 if((MaskEdit1->Text.Length()!= 0) && (MaskEdit2->Text.Length()!= 0))    { TopRow = MaskEdit1->Text.ToInt(); BottomRow = MaskEdit2->Text.ToInt(); } 照理說我沒在MaskEdit1和MaskEdit2裡面輸入文字 它就不會跑這一段程式 但是程式在執行時,它會告訴我綠色的那行出問題 並且出現警告視窗如下:
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-01 20:21:35 IP:211.22.xxx.xxx 未訂閱
改成這樣~
if((MaskEdit1->EditText.Length()!= 0) && (MaskEdit2->EditText.Length()!= 0))
   {
 TopRow = MaskEdit1->EditText.ToInt();
      BottomRow = MaskEdit2->EditText.ToInt();
   }
---------------------------------------------- We will either find a way, or make one. -Hannibal -。 發表人 - stallion 於 2005/08/01 20:23:08
wena
一般會員


發表:26
回覆:37
積分:12
註冊:2005-07-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-01 22:22:46 IP:220.131.xxx.xxx 未訂閱
我已經改了 可是好像還是沒變耶?? 為什麼呢 有可能是另外的問題嗎?
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-01 22:52:05 IP:211.22.xxx.xxx 未訂閱
Mask長什麼樣子,可否貼上來看看~ ---------------------------------------------- We will either find a way, or make one. -Hannibal -。
wena
一般會員


發表:26
回覆:37
積分:12
註冊:2005-07-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-01 23:04:59 IP:220.131.xxx.xxx 未訂閱
就是開始行數、結束行數的那兩個 謝謝!
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-08-01 23:11:17 IP:211.22.xxx.xxx 未訂閱
1.Mask錯了,在EDITMASK屬性裡改成(如果只有四位數長度)9999;1 2.程式碼還原成你的原來樣子即可。 3.把MASKEDIT看一下線上說明,你的MASK有點錯的離譜了! ----------------------------------------------
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-08-02 01:34:34 IP:221.169.xxx.xxx 未訂閱
插花一下,數字型的輸入選擇建議使用Edit或MaskEdit加上Updown(位於Win32)
Form上置一Edit(MaskEdit)置一個UpDown其屬性Associate選擇你要配合的
Edit例Edit1,UpDown可以設定Min及Max,不論使用者於Edit上輸入數值
(只限數值)或使用UpDown上下鍵調整數值大小皆可使用UpDown1->Position
得到數值。你的問題較易解決!
if((UpDown1->Position != 0) && (UpDown2->Position != 0))   {
  TopRow = UpDown1->Position;
  BottomRow = UpDown2->Position;
}    請參考!    
Andy Chang 發表人 - andychang1690 於 2005/08/02 01:36:45
------
Andy Chang
wena
一般會員


發表:26
回覆:37
積分:12
註冊:2005-07-20

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-08-02 13:05:00 IP:163.17.xxx.xxx 未訂閱
謝謝Stallion大大的指正 我是還沒看線上說明啦 不過我大概懂你的意思    也謝謝andychang1690大大 我會慢點再處理你的建議    不過我倒是還有個問題 在我的程式中:
 if((Edit1->Text.Length()!= 0) && (Edit2->Text.Length()!= 0))
   {
     TopRow = Edit1->Text.ToInt();
     BottomRow = Edit2->Text.ToInt();
   } 
這一段是沒什麼問題了 但是下面:(部分的程式) for ( i = BottomRow ;i >= TopRow ; i-- ) { temp = RichEdit1->Lines[i].Text; StringReplace(temp , "\r\n", " ", TReplaceFlags() << rfReplaceAll ); //只處理選擇的範圍 } 我可以選擇在TopRow和ButtomRow之間做取代的工作 但是在執行程式時出現了問題 跑出了一個: 這一段的警告我就弄不大清楚了 請幫我看一看 謝謝!
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-08-02 18:21:49 IP:211.22.xxx.xxx 未訂閱
1.Compiler的警告在哪裡?沒看見~ > ----------------------------------------------
系統時間:2024-05-09 16:43:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!