我的字串比較函式沒起作用

2022-04-14 21:11:13 字數 1993 閱讀 8294

我的字串比較函式沒起作用???? delphi / windows sdk/api

最近老師要求我們模擬頁面置換的先進先出,在進行頁面置換的時候,我希望先對頁面名稱進行比較,一樣的話,就沒必要進行置換.  

procedure   tform1.button3click(sender:   tobject);  

var   h,m:integer;   flag:boolean;  

begin  

flag:=true;  

for   h:=1   to   listbox1.itemindex   do  

//   h作為新進頁面與已有頁面的比較的控制迴圈變數  

begin  

if     sametext(edit2.text,listbox1.items[h])then  

begin  

flag:=false;   //   物理塊中存在與新進頁面一樣的頁面  

end  

else  

begin  

flag:=true;//新進頁面在物理塊中沒有  

end;  

end;  

if   flag=false   then  

begin  

showmessage('頁面已存在,不需要置換');  

edit2.clear;  

edit2.setfocus;  

end  

else  

begin           //根據fifo演算法   進行替換  

m:=i   mod   strtoint(edit1.text);  

listbox1.items[m]:=edit2.text;  

edit2.clear;  

edit2.setfocus;  

i:=i+1;  

end;  

end;  

但是無論我輸入什麼變數,他會進行置換,不管是不是存在相同的頁面,然而我也懷疑是sametext相同的話,返回的值是false,試過也不行,也用過(<>),和另外乙個函式,但是都沒用,感覺好像沒進行比較這一步....???     請問大家這是怎麼回事,多謝!!!!

//你的**風格太差,難道你們老師就沒說過你?  

//你照著vcl裡的**風格編寫  

//這個問題關鍵是在迴圈中賦值又沒有退出迴圈,那當然flag值就是最後一條判斷出來的值  

//參考如下**:  

flag   :=   true;  

for   h   :=   0   to   listbox1.itemindex   do  

//   h作為新進頁面與已有頁面的比較的控制迴圈變數  

begin  

if   sametext(edit2.text,   listbox1.items[h])then  

begin  

flag   :=   false;   //   物理塊中存在與新進頁面一樣的頁面  

break;   //   《退出迴圈  

end;  

end;  

for   h:=1   to   listbox1.itemindex   do    

-----------------------------------  

你的問題是程式沒有執行h作為新進頁面與已有頁面的比較的控制迴圈變數,而flag的初始值為true,為什麼沒有執行呢,你把迴圈按下面改一下就可以了.  

for   h:=0   to   pred(listbox1.items.count)   do

謝謝你們   照你們的改後,程式可以達到我預期的效果了   zswang   :關於**風格的問題,我以後會注意的   你的**很精簡,從中我也看出了我的問題.但是在迴圈控制的那個部分也要照sanmaotuo的改       呵呵,經過你們倆的指導,我學到了東西,謝謝

字串比較函式

stricmp wcsicmp mbsicmp stricmp l wcsicmp l mbsicmp l 執行不區分大小寫的字串比較 語法 int stricmp const char string1,const char string2 int wcsicmp const wchar t str...

Zuul路由沒起作用(僅是我個人遇到的問題)

register register服務配置 不向後端服務傳遞的敏感頭資訊 path register 制定好path和serviceid,所有以path開頭的請求都會被路由到對應的服務。如下面 hiapi 被路由到service hi對應的服務,ribbonapi 被路由到service ribbo...

字串 雜湊 比較 各種字串Hash函式比較

常用的字串hash函式還有elfhash,aphash等等,都是十分簡單有效的方法。這些函式使用位運算使得每乙個字元都對最後的函式值產生影響。另外還有以md5和sha1為代表的雜湊函式,這些函式幾乎不可能找到碰撞。常用字串雜湊函式有bkdrhash,aphash,djbhash,jshash,rsh...