Perbandingan karakter pengganti DELPHI
Penulis: Li Junyu email: [email protected] atau [email protected] atau [email protected]
Diakui bahwa DELPHI memiliki fungsi yang lebih kuat daripada VB, namun terkadang tidak senyaman VB dalam beberapa hal kecil. Misalnya, ada SENDKEY() di VB, yang dapat dengan mudah mensimulasikan tombol keyboard, tetapi lebih rumit di DELPHI. Contoh lainnya adalah Ada LIKE di VB untuk mengimplementasikan wildcard dengan mudah Bandingkan, tetapi saya tidak dapat menemukannya di DELPHI. Oleh karena itu, ketika saya dalam keadaan bebas dan masih mood, saya membuat fungsi kustom untuk merealisasikan fungsi ini, kalau-kalau saya sedang tidak mood untuk melakukannya. hal sekecil itu lagi dalam keadaan darurat. Program. Program kecil semacam ini tidak ada gunanya jika disimpan di rak.
Algoritme program pertama-tama menambahkan '?' di akhir substring. *', lalu baca substringnya, cari karakter di antara karakter wildcard di substring, yaitu substring di substring, lalu cari di string sumber untuk melihat apakah berisi substring di substring masih sangat sulit untuk diterapkan.
function isABClikeAX(abc,ax:string):boolean; //abc adalah string sumber, ax adalah substring
var
abcstart,axstart,abclength,axlength:integer;
endpartabc,endpartax,subax:string;
temp,abcwww,axwww:integer;
mulai//aaa
suhu:=0;
abcmulai:=1;
awalan kapak:=1;
kapakwww:=1;
abcwww:=1;
abcpanjang:=panjang(abc);
panjang sumbu:=panjang(kapak);
isabclikeax:=benar;
sementara axstart<=axlength lakukan
mulai//bbb
jika ax[axstart]='?' maka
mulai
inc(axstart);
inc(abcstart);
jika abcstart> abclength maka
mulai
isabclikeax:=salah;
merusak;
akhir;
melanjutkan;
akhir;
jika ax[axstart]='*' maka
mulai
inc(axstart);
suhu:=1;
axwww:=axstart;
abcwww:=abcmulai;
melanjutkan;
akhir;
jika tidak(ax[axstart] in ['?','*'] ) maka
mulai//ccc
endpartax:=copy(ax,axstart,axlength-axstart+1)+'?*';
subax:=copy(endpartax,1,min(pos('?',endpartax),pos('*',endpartax))-1);
axstart:=axstart+min(pos('?',endpartax),pos('*',endpartax))-1;
endpartabc:=salin(abc,abcstart,abclength-abcstart+1);
jika ((pos(subax,endpartabc)<>0) dan (temp=1 )) atau ((pos(subax,endpartabc)=1) dan (temp=0)) maka
mulai //dd
jika suhu=1 maka suhu:=0;
abcstart:=abcstart+(pos(subax,endpartabc)+panjang(subax)-1) ;
// axstart:=axstart+min(pos('?',endpartax),pos('*',endpartax))-1;
akhir //dd
lain //ddd
mulai //dd
jika suhu = 0 maka
mulai
axstart:=axwww;
abcwww:=abcwww+1;
abcstart:=abcwww;
suhu:=1;
melanjutkan;
akhir;
isabclikeax:=salah;
merusak;
akhir; //hdd
akhir;//ccc
akhir;//bbb
akhir;//aaa
FUNGSInya seperti(abc,ax:string):boolean;
mulai
seperti:=isABClikeAX(abc,ax);
akhir;
FUNGSI kartu lebar(abc,ax:string):boolean;
mulai
kartu lebar:=isABClikeAX(abc,ax);
akhir;
Perhatikan USES MATH, karena digunakan MIN(), Anda juga dapat menggunakan pernyataan IF untuk menggantikan MIN(), tetapi kurang jelas.