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

關於StringReplace執行速度的問題

尚未結案
iii0628
一般會員


發表:50
回覆:46
積分:19
註冊:2005-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-27 17:00:31 IP:220.130.xxx.xxx 未訂閱
我的程式用第一種方法執行時很慢要1分多鐘,後來我將2個迴圈寫在一起速度有變快了但是還是很慢,大約要50秒才可以執行完畢。後來發現是sz=StringReplace(sl1->Strings[i], " ", ",", TReplaceFlags()< if (OpenDialog1->Execute()) { sl1=new TStringList; sl1->LoadFromFile(OpenDialog1->FileName); for(i=0; iCount; i ) { sl2=new TStringList; sz=StringReplace(sl1->Strings[i], " ", ",", TReplaceFlags()<CommaText=sz; for(j=0; jCount; j ) { iArray[i][j]=StrToInt(sl2->Strings[j]); } delete sl2; } delete sl1; // 填入StringGrid1->Cells中 for(i=0; i<1214; i ) { sz=""; for(j=0; j<1624; j ) { StringGrid1->Cells[j][i]=(IntToStr(iArray[i][j])); } } } 第二種方法
if (OpenDialog1->Execute())
 {
      sl1=new TStringList;
      sl1->LoadFromFile(OpenDialog1->FileName);
   for(i=0; iCount; i  )
   {
      sl2=new TStringList;
      sz=StringReplace(sl1->Strings[i], " ", ",", TReplaceFlags()<CommaText=sz;
       sz="";
      for(j=0; jCount; j  )
      {
         iArray[i][j]=StrToInt(sl2->Strings[j]);
         StringGrid1->Cells[j][i]=(IntToStr(iArray[i][j]));
      }
      delete sl2;
   }
   delete sl1;          }
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-27 23:18:04 IP:219.84.xxx.xxx 未訂閱
使用STL應該會快上許多     
     //---------------------------------------------------------------------------
#include 
#include     void __fastcall TForm1::Button1Click(TObject *Sender)
{
        AnsiString sl1("1231231 3231 231 23 123 1231 23 123 13 2");
        std::string text = sl1.c_str();
        std::replace(text.begin(),text.end(),' ',',');
        AnsiString sz = text.c_str();    }
//---------------------------------------------------------------------------    
系統時間:2024-05-17 19:31:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!