如何Memo裡顯示的值抓出並做比對 |
答題得分者是:ikk
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
各位大大好
小弟用C Builder 6寫了一個程式 利用scanline的方式將 image某一列的y值和像素值掃進Memo裡並顯示出來 小弟現在想在迴圈裡加寫 把Memo裡的值抓取出來 並將字串轉成整數 兩兩做大小比對 再把值顯示在Label 這是小弟寫的迴圈 for(int y=50;y<=150;y ) { ptr2=(Byte*) TempBitmap2->ScanLine[y]; for(int x=1445;x<1446;x ) { Bmapbuf1[0]=ptr2[x]; Label30->Visible=true; Label30->Caption=x; Memo2->Lines->Add(IntToStr(y) ":" IntToStr(ptr2[x])); } } 這是Memo裡顯示的值 Y值 :像素值 50:1 51:1 52:1 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:2 121:1 122:6 123:3 124:8 125:8 126:14 127:22 128:43 129:28 130:149 131:121 132:190 133:181 134:190 135:174 136:175 137:189 138:198 139:212 140:196 141:161 142:123 143:151 144:140 145:124 146:154 147:144 148:138 149:124 150:102 小弟要做比對是為了取像素值的分水嶺就像 126-132的值 小弟要在這忽然從小變大的值做比對 126:14 127:22 128:43 129:28 130:149 131:121 132:190 先從50和51兩個做比對 到128 129 130的值做比對 a為128 b為129 c為130 a不能大於100 b和c大於100 ac 因為每一張圖的像素值大小位置不一樣 小弟想將值的比對停在大於100的前5個像素值 像130-134 128:43 129:28 130:149 131:121 132:190 133:181 134:190 小弟之前有加入一些程式在迴圈但是Memo裡的值會被消除取代掉 希望各位大大指導小弟 小弟會認真學習
------
丫風 |
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
kk大大您好
我現在卡在要從memo裡抓出值來做比對 這是小弟寫的程式 for(int y=50;y<=200;y ) { ptr2=(Byte*) TempBitmap2->ScanLine[y]; for(int x=666;x<667;x ) { Bmapbuf1[0]=ptr2[x]; Label29->Visible=true; Label29->Caption=x; if(ptr2[x]>1 && ptr2[x]<190) <---------- kk大大有沒有辦法讓ptr2[x]的值列出 1~ 190 超過的不要 { break; } { Memo1->Lines->Add(IntToStr(y) ":" IntToStr(ptr2[x])); { AnsiString s1; int a; int buff[100]; for(int i=0;i<=150; i ) <-------這個迴圈要做抓出值做比對 小弟現在卡在這 { s1=Memo1->Lines->Strings[i]; buff[0]=ptr2[x]; s1=Memo1->Lines->Strings[i 1]; buff[1]=ptr2[x]; buff[0] Label32->Visible=true; Label32->Caption=IntToStr(ptr2[x]); } } } } 希望大大 能給一些指導
------
丫風 |
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
讓y值和像素值停在第一個像素為190的地方
60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:2 121:1 122:6 123:3 124:8 125:8 126:14 127:22 128:43 129:28 130:149 131:121 132:190 memo的顯示像這樣子就停止不就寫入
------
丫風 |
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
kk大大您好 謝謝你的指導
我寫了一些程式 AnsiString s1; int n = Memo1->Lines->Strings[i].Pos(":"); n = 1; //skip ':' s1= Memo1->Lines->Strings[i].SubString(n,3); Label33->Visible=true; Label33->Caption=s1; 這s1抓取出來的值是 104 <------像素值 但是小弟要把這值存進 buff[0] ------------> buff[0]=StrToInt(s1); 執行出現了錯誤是我把型態認錯了嗎?
------
丫風 |
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
|
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
seiken
一般會員 ![]() ![]() 發表:9 回覆:29 積分:7 註冊:2008-11-21 發送簡訊給我 |
大大 我加寫了求字串的長度
AnsiString s,s1; int n = Memo1->Lines->Strings[i].Pos(":"); n = 1; //skip ':' s = Memo1->Lines->Strings[i]; int a = s.Length(); <------我在讓 a = s的字串長度 s1= Memo1->Lines->Strings[i].SubString(n,(a 1)-n); <--------我讓(a 1)-n是抓取我要的字串長度 可是s1的值是NULL buff[0]=StrToInt(s1); Label33->Visible=true; Label33->Caption=s1; 我有設錯嗎? (n,(a 1)-n) <===== (4,1)
------
丫風 |
ikk
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |