BCB讀取檔案內的字元及使用儲存容器?? |
答題得分者是:aftcast
|
don750421
一般會員 發表:11 回覆:12 積分:4 註冊:2012-09-27 發送簡訊給我 |
來源:1~20個不等的文字檔
文字檔內容只有"英文"和"符號",文字檔內的字元最多可能到10000個↑ 輸出:1.計算文字檔內每個字元的數量 (P.S.每個文字檔的總字元數都相同) 2.文字檔的行列數 (P.S.每個文字檔的行列數都相同) 工具:Borland C Builder6 儲存容器選擇:Array、ArrayList、Vector =================================================================== 請問一下各位前輩,假設我要讀取多個檔案,檔案類型如上述 文字檔內容可能如下..每一行及每一列數量一定都是固定(不會有多一個字母的情況) ACEFECEEGFIKREGERLJKRG RGMFKDJGERIGELBKTPBKOF GKIRJEMBVPTRHJTRLRGTLH RKJVEVMIRGTJBMTRLKHNHQ FVETIOBTBRLTKRBNLOKCYT JKHREJVNKLEVNNCWEFGSDF RKVHJEMVPOERJBGVDESVLW VJEBRGRTBLGBJOSDFJVBER HJVBERVLTMBEEBLMTRRBBE 之前使用C#的話,可以透過StreamReader去讀取.. 使用BCB的話,不曉得要使用哪種比較好.. 上網查到的資訊是,可以藉由fgets去讀每一行 (並取得2.文字檔的行列數) 但是,我要去計算字元出現的次數該怎麼辦呢?? 再使用fgetc去讀每一行的每個字元嗎?? 還是說有其他效率比較好的方式呢? 如果我要儲存1~20個文字檔的字元數,我使用哪種容器會比較好呢?? 因為容器只是用儲存字元數,不會拿來排序或比較.. 照理說,以效率而言會是Array > ArrayList > Vector 是這樣嗎?? 謝謝大家 |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
看一下 cb 與我的演算法的power吧,程式很短,速度極快!
拉一個button與一個memo元件,然後在d:\ 建一個叫 test.txt的文件 (如你說的) [code cpp] void __fastcall TForm1::Button1Click(TObject *Sender) { TStringList *st = new TStringList; st->LoadFromFile("D:\\test.txt"); int lineCount = st->Count; AnsiString as = st->Text; const BYTE asciiNum = 128; int calc[asciiNum] = {0}; for (int i=0;i< as.Length() ;i ) { (calc[as[i 1]]) ; } this->Memo1->Lines->Clear(); this->Memo1->ScrollBars = ssVertical; this->Memo1->Lines->Add(AnsiString().sprintf("Total lines = %d",lineCount)); for (BYTE i=0x21;i this->Memo1->Lines->Add(AnsiString().sprintf("%c = %d",i,calc[i])); } delete st; } //--------------------------------------------------------------------------- [/code]
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |