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

開檔後如何將字串內容寫進一陣列中

尚未結案
YAUYAU
一般會員


發表:38
回覆:26
積分:12
註冊:2003-09-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-05 22:11:35 IP:140.122.xxx.xxx 未訂閱
想請問一個問題,以下是我要讀入的檔案格式:    P2 40 3 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0    想直接從第四行直接讀取值後存入一指標陣列中,目標的程式為存入一陣列中 compile沒有問題,但是run時卻會出現error,不知道存取時哪裡出了問題, 現在想要把程式修改成動態指標,不知道該從何改起了?    底下程式是參照別人程式修改的:   TStringList *sl1=new TStringList;         sl1->LoadFromFile("C:\\a\\pp.pgm");          int a[1200]={0},p=0;          for(int k=3; kCount; k ) { TStringList *sl2=new TStringList; AnsiString sz=StringReplace(sl1->Strings[k], " ", ",", TReplaceFlags()<CommaText=sz; for(int l=0; lCount; l ) { if(sl2->Strings[l]!="") { a[p] = StrToInt(sl2->Strings[l]); // 要在這邊將String的 //值放入一陣列中,但是會有錯誤 //想問如何用指標改寫呢 p ; } } delete sl2; } delete sl1;
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-06 08:59:38 IP:61.66.xxx.xxx 未訂閱
我改了一下你的程式碼,試用一下  
 
    TStringList *sl1=new TStringList;
    sl1->LoadFromFile("C:\\a\\pp.pgm");        int a[1200]={0},p=0;
    char *token;        for(int k=3; k < sl1->Count; k  )
    {
        token=strtok(sl1->Strings[k].c_str()," ");//引號內填入你要用來區隔的字元" "
        while(token != NULL)
        {
            a[p  ]=atoi(token);
            token=strtok(NULL," "); //引號內填入你要用來區隔的字元" "
        }
    }
    delete sl1;
YAUYAU
一般會員


發表:38
回覆:26
積分:12
註冊:2003-09-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-06 14:04:41 IP:140.122.xxx.xxx 未訂閱
因為我要讀的大小為400*300的大小 所以必須將程式中的a陣列改成動態的指標,該如何改呢? 以下是我修改過的程式..可以work了...感謝 TStringList *sl1=new TStringList; sl1->LoadFromFile("C:\\a\\0001.pgm"); int a[120000]={0}; int p=0; char *token; for(int k=3; k < sl1->Count; k ) { token=strtok(sl1->Strings[k].c_str()," "); while(token != NULL) { a[p]=atoi(token); token=strtok(NULL," "); p ; } } delete sl1;
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-06 14:19:55 IP:61.66.xxx.xxx 未訂閱
所以必須將程式中的a陣列改成動態的指標 我不了解為什麼要這樣 上面的程式碼不能滿足你的需求嗎??
YAUYAU
一般會員


發表:38
回覆:26
積分:12
註冊:2003-09-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-06 16:22:03 IP:140.122.xxx.xxx 未訂閱
妳好,因為我後來是要處理大量的圖片 需要批次的轉換,所以想說如果能宣告成動態的形式 可以減少記憶體的空間 不是這樣嗎 @_@?
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-06 19:12:25 IP:61.66.xxx.xxx 未訂閱
我想,你讀完一張圖後,就會做處理了吧 接下來,你可以用同一塊記憶體讀入下一張圖 這樣一來,記憶體會不足嗎?? 而且,我到現在還是不瞭解,你所謂的用動態宣告是指用Vector嗎 為了你的圖片大小可能不一樣大,怕浪費記憶體?? 我個人認為,除非你的程式要用到非常多記憶體, 要不然宣告大一點的陣列應該算還好吧
YAUYAU
一般會員


發表:38
回覆:26
積分:12
註冊:2003-09-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-07 14:05:20 IP:140.122.xxx.xxx 未訂閱
謝謝你的回答喲,我大概清楚了  
系統時間:2024-06-02 22:12:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!