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

關於讀取字串的問題

答題得分者是:taishyang
load
一般會員


發表:13
回覆:7
積分:4
註冊:2003-12-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-09 14:18:27 IP:211.21.xxx.xxx 未訂閱
各位前輩好,小弟寫了一個讀取檔案的程式, 用了RichEdit1->Lines->LoadFromFile(Path); for(int i=0;iLines->Count; i ) { for(int j=0;jLines->Strings[i].Length();j ) { RichEdit1->Lines->Strings[i].SubString(i,1); } } 這樣的結果也只能得到文字的行數 如果我想要計算每字串中的單字以及出現資數的累積 要使用什麼方法會比較簡單容昜............... 書上都找不到相關的答案。
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-09 14:27:32 IP:140.135.xxx.xxx 未訂閱
load您好: 請參考版規您的程式碼更方便閱讀 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=43311 謝謝您的配合
load
一般會員


發表:13
回覆:7
積分:4
註冊:2003-12-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-01-09 14:43:24 IP:211.21.xxx.xxx 未訂閱
Sorry, 那我再用一次    
RichEdit1->PlainText = true;
    RichEdit1->Lines->LoadFromFile(Path);
      for(int i=0;iLines->Count; i  )
         {
           for(int j=0;jLines->Strings[i].Length();j  )
            {
             RichEdit1->Lines->Strings[i].SubString(i,1);                }             }
我寫了這些,目前只能讀到文章有幾行 目前還沒找到可以讀有幾個字或是有幾個字重覆的方 如果各位前輩有好的方法,請給點建議或是方向。謝謝
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-01-09 14:51:58 IP:140.135.xxx.xxx 未訂閱
阿~您結案了,我只有請您修改程式碼編排方式說< > 請問您的文字檔內容為何? [幾個字或是有幾個字重覆]指的是中文還是英文(指的是單字還是字母)? 順心< >
load
一般會員


發表:13
回覆:7
積分:4
註冊:2003-12-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-01-09 15:14:48 IP:211.21.xxx.xxx 未訂閱
sorry,那是我不小心按到,那我要解釋一下我的問題 打個比方好了,假如我的文章有這些字以下這些字
 MACHINE LANGUAGE IS THE BASIC LANGUAGE UNDERSTOOD BY THE COMPUTING 
      MACHINE.  MOST COMPUTERS HAVE REGISTERS IN THE CPU THAT ARE SIMILAR
      TO THE REGISTER IN THE DESK CALCULATOR.  THEY ARE CAKKED ACCUMULATORS
      BECAUSE THEY ARE USED TO ACCUMULATE THE INTERMEDIATE RESULTS.  THE CPU
      CAN BE TOLD TO LOAD A NUMBER INTO ITS ACCUMULATOR FROM A SPECIFIC CELL
      IN THE MEMORY, TO ADD, SUBTRACT, MULTIPLY, OR DIVIDE THE NUMBER IN THE
      ACCUMULATOR BY A NUMBER FROM MEMORY, OR TO STORE A NUMBER FROM THE 
      ACCUMULATOR INTO MEMORY.
我想算出這裡面的英文字重覆,然後以次數的出現次數排序 注意一下,這不是學校的作業,所以別在說我拿作業來貼了 只是希望以學習的角度有個方向。所以拿了一些題目來作。
scott777
一般會員


發表:10
回覆:15
積分:5
註冊:2002-08-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-01-09 15:53:14 IP:61.230.xxx.xxx 未訂閱
C Primer 3rd edition 第六章 有你要的答案 學一下STL不錯
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-01-09 17:03:30 IP:140.135.xxx.xxx 未訂閱
load您好: 您可以參考下面的code將每一個英文單字取出
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Memo1->Lines->LoadFromFile("test.txt");
 TStringList *sl=new TStringList;
 for (int i=0;iLines->Count ;i  )
 {
  AnsiString sz=Memo1->Lines->Strings[i];
  sl->CommaText=sz;
  for(int j=0; jCount; j  )
    Memo2->Lines->Add(sl->Strings[j]);
 }
 delete sl;
}
至於比對的話,您可以參考下面的討論文章 http://delphi.ktop.com.tw/topic.php?topic_id=35299 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
irvinehing
初階會員


發表:77
回覆:79
積分:31
註冊:2003-11-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-01-10 11:22:46 IP:202.174.xxx.xxx 未訂閱
引言: sorry,那是我不小心按到,那我要解釋一下我的問題 打個比方好了,假如我的文章有這些字以下這些字
 MACHINE LANGUAGE IS THE BASIC LANGUAGE UNDERSTOOD BY THE COMPUTING 
      MACHINE.  MOST COMPUTERS HAVE REGISTERS IN THE CPU THAT ARE SIMILAR
      TO THE REGISTER IN THE DESK CALCULATOR.  THEY ARE CAKKED ACCUMULATORS
      BECAUSE THEY ARE USED TO ACCUMULATE THE INTERMEDIATE RESULTS.  THE CPU
      CAN BE TOLD TO LOAD A NUMBER INTO ITS ACCUMULATOR FROM A SPECIFIC CELL
      IN THE MEMORY, TO ADD, SUBTRACT, MULTIPLY, OR DIVIDE THE NUMBER IN THE
      ACCUMULATOR BY A NUMBER FROM MEMORY, OR TO STORE A NUMBER FROM THE 
      ACCUMULATOR INTO MEMORY.
我想算出這裡面的英文字重覆,然後以次數的出現次數排序 注意一下,這不是學校的作業,所以別在說我拿作業來貼了 只是希望以學習的角度有個方向。所以拿了一些題目來作。 < face="Verdana, Arial, Helvetica">
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        Memo1->Lines->LoadFromFile("E:\\Temp\\abc.txt");
        TStringList *sl = new TStringList;            for(int i = 0; i < Memo1->Lines->Count; i  )
        {
                AnsiString sz = Memo1->Lines->Strings[i];
                sl->CommaText = sz;                    for(int j = 0; j < sl->Count; j  )
                {
                        sl->Strings[j] = strtok(sl->Strings[j].c_str(), ",.");
                        int index = Memo2->Lines->IndexOf(sl->Strings[j]);
                        if(index == -1)
                        {
                                Memo2->Lines->Add(sl->Strings[j]);
                                Memo3->Lines->Add("1");
                        }
                        else
                        {
                                int tmp = StrToInt(Memo3->Lines->Strings[index]);
                                Memo3->Lines->Strings[index] = IntToStr(tmp   1);
                        }
                }
        }            delete sl;
} 
 
Albertz
初階會員


發表:2
回覆:57
積分:31
註冊:2002-09-05

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-01-10 11:32:33 IP:211.20.xxx.xxx 未訂閱
如果只是要計算每字串中的單字, 何不用 TParser? http://community.borland.com/article/0,1410,26380,00.html
系統時間:2024-05-18 13:07:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!