分類: Delphi 2009-08-01 20:59 653人閱讀 收藏 舉報
- unit Unit1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
-
- type
- TForm1 = class(TForm)
- Edit1: TEdit;
- Edit2: TEdit;
- procedure Edit1Change(Sender: TObject);
- private
-
- public
-
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.dfm}
- const py: array[216..247] of string = (
- 'CJWGNSPGCGNESYPB' + 'TYYZDXYKYGTDJNMJ' + 'QMBSGZSCYJSYYZPG' +
- 'KBZGYCYWYKGKLJSW' + 'KPJQHYZWDDZLSGMR' + 'YPYWWCCKZNKYDG',
- 'TTNJJEYKKZYTCJNM' + 'CYLQLYPYQFQRPZSL' + 'WBTGKJFYXJWZLTBN' +
- 'CXJJJJZXDTTSQZYC' + 'DXXHGCKBPHFFSSYY' + 'BGMXLPBYLLLHLX',
- 'SPZMYJHSOJNGHDZQ' + 'YKLGJHXGQZHXQGKE' + 'ZZWYSCSCJXYEYXAD' +
- 'ZPMDSSMZJZQJYZCD' + 'JEWQJBDZBXGZNZCP' + 'WHKXHQKMWFBPBY',
- 'DTJZZKQHYLYGXFPT' + 'YJYYZPSZLFCHMQSH' + 'GMXXSXJJSDCSBBQB' +
- 'EFSJYHXWGZKPYLQB' + 'GLDLCCTNMAYDDKSS' + 'NGYCSGXLYZAYBN',
- 'PTSDKDYLHGYMYLCX' + 'PYCJNDQJWXQXFYYF' + 'JLEJBZRXCCQWQQSB' +
- 'ZKYMGPLBMJRQCFLN' + 'YMYQMSQYRBCJTHZT' + 'QFRXQHXMJJCJLX',
- 'QGJMSHZKBSWYEMYL' + 'TXFSYDSGLYCJQXSJ' + 'NQBSCTYHBFTDCYZD' +
- 'JWYGHQFRXWCKQKXE' + 'BPTLPXJZSRMEBWHJ' + 'LBJSLYYSMDXLCL',
- 'QKXLHXJRZJMFQHXH' + 'WYWSBHTRXXGLHQHF' + 'NMCYKLDYXZPWLGGS' +
- 'MTCFPAJJZYLJTYAN' + 'JGBJPLQGDZYQYAXB' + 'KYSECJSZNSLYZH',
- 'ZXLZCGHPXZHZNYTD' + 'SBCJKDLZAYFMYDLE' + 'BBGQYZKXGLDNDNYS' +
- 'KJSHDLYXBCGHXYPK' + 'DQMMZNGMMCLGWZSZ' + 'XZJFZNMLZZTHCS',
- 'YDBDLLSCDDNLKJYK' + 'JSYCJLKOHQASDKNH' + 'CSGANHDAASHTCPLC' +
- 'PQYBSDMPJLPCJOQL' + 'CDHJJYSPRCHNKNNL' + 'HLYYQYHWZPTCZG',
- 'WWMZFFJQQQQYXACL' + 'BHKDJXDGMMYDJXZL' + 'LSYGXGKJRYWZWYCL' +
- 'ZMSSJZLDBYDCPCXY' + 'HLXCHYZJQSQQAGMN' + 'YXPFRKSSBJLYXY',
- 'SYGLNSCMHCWWMNZJ' + 'JLXXHCHSYD CTXRY' + 'CYXBYHCSMXJSZNPW' +
- 'GPXXTAYBGAJCXLYS' + 'DCCWZOCWKCCSBNHC' + 'PDYZNFCYYTYCKX',
- 'KYBSQKKYTQQXFCWC' + 'HCYKELZQBSQYJQCC' + 'LMTHSYWHMKTLKJLY' +
- 'CXWHEQQHTQHZPQSQ' + 'SCFYMMDMGBWHWLGS' + 'LLYSDLMLXPTHMJ',
- 'HWLJZYHZJXHTXJLH' + 'XRSWLWZJCBXMHZQX' + 'SDZPMGFCSGLSXYMJ' +
- 'SHXPJXWMYQKSMYPL' + 'RTHBXFTPMHYXLCHL' + 'HLZYLXGSSSSTCL',
- 'SLDCLRPBHZHXYYFH' + 'BBGDMYCNQQWLQHJJ' + 'ZYWJZYEJJDHPBLQX' +
- 'TQKWHLCHQXAGTLXL' + 'JXMSLXHTZKZJECXJ' + 'CJNMFBYCSFYWYB',
- 'JZGNYSDZSQYRSLJP' + 'CLPWXSDWEJBJCBCN' + 'AYTWGMPABCLYQPCL' +
- 'ZXSBNMSGGFNZJJBZ' + 'SFZYNDXHPLQKZCZW' + 'ALSBCCJXJYZHWK',
- 'YPSGXFZFCDKHJGXD' + 'LQFSGDSLQWZKXTMH' + 'SBGZMJZRGLYJBPML' +
- 'MSXLZJQQHZSJCZYD' + 'JWBMJKLDDPMJEGXY' + 'HYLXHLQYQHKYCW',
- 'CJMYYXNATJHYCCXZ' + 'PCQLBZWWYTWBQCML' + 'PMYRJCCCXFPZNZZL' +
- 'JPLXXYZTZLGDLDCK' + 'LYRLZGQTGJHHGJLJ' + 'AXFGFJZSLCFDQZ',
- 'LCLGJDJCSNCLLJPJ' + 'QDCCLCJXMYZFTSXG' + 'CGSBRZXJQQCTZHGY' +
- 'QTJQQLZXJYLYLBCY' + 'AMCSTYLPDJBYREGK' + 'JZYZHLYSZQLZNW',
- 'CZCLLWJQJJJKDGJZ' + 'OLBBZPPGLGHTGZXY' + 'GHZMYCNQSYCYHBHG' +
- 'XKAMTXYXNBSKYZZG' + 'JZLQJDFCJXDYGJQJ' + 'JPMGWGJJJPKQSB',
- 'GBMMCJSSCLPQPDXC' + 'DYYKYWCJDDYYGYWR' + 'HJRTGZNYQLDKLJSZ' +
- 'ZGZQZJGDYKSHPZMT' + 'LCPWNJAFYZDJCNMW' + 'ESCYGLBTZCGMSS',
- 'LLYXQSXSBSJSBBGG' + 'GHFJLYPMZJNLYYWD' + 'QSHZXTYYWHMCYHYW' +
- 'DBXBTLMSYYYFSXJC' + 'SDXXLHJHF SXZQHF' + 'ZMZCZTQCXZXRTT',
- 'DJHNNYZQQMNQDMMG' + 'LYDXMJGDHCDYZBFF' + 'ALLZTDLTFXMXQZDN' +
- 'GWQDBDCZJDXBZGSQ' + 'QDDJCMBKZFFXMKDM' + 'DSYYSZCMLJDSYN',
- 'SPRSKMKMPCKLGDBQ' + 'TFZSWTFGGLYPLLJZ' + 'HGJJGYPZLTCSMCNB' +
- 'TJBQFKTHBYZGKPBB' + 'YMTDSSXTBNPDKLEY' + 'CJNYCDYKZDDHQH',
- 'SDZSCTARLLTKZLGE' + 'CLLKJLQJAQNBDKKG' + 'HPJTZQKSECSHALQF' +
- 'MMGJNLYJBBTMLYZX' + 'DCJPLDLPCQDHZYCB' + 'ZSCZBZMSLJFLKR',
- 'ZJSNFRGJHXPDHYJY' + 'BZGDLJCSEZGXLBLH' + 'YXTWMABCHECMWYJY' +
- 'ZLLJJYHLGBDJLSLY' + 'GKDZPZXJYYZLWCXS' + 'ZFGWYYDLYHCLJS',
- 'CMBJHBLYZLYCBLYD' + 'PDQYSXQZBYTDKYYJ' + 'YYCNRJMPDJGKLCLJ' +
- 'BCTBJDDBBLBLCZQR' + 'PPXJCGLZCSHLTOLJ' + 'NMDDDLNGKAQHQH',
- 'JHYKHEZNMSHRP QQ' + 'JCHGMFPRXHJGDYCH' + 'GHLYRZQLCYQJNZSQ' +
- 'TKQJYMSZSWLCFQQQ' + 'XYFGGYPTQWLMCRNF' + 'KKFSYYLQBMQAMM',
- 'MYXCTPSHCPTXXZZS' + 'MPHPSHMCLMLDQFYQ' + 'XSZYJDJJZZHQPDSZ' +
- 'GLSTJBCKBXYQZJSG' + 'PSXQZQZRQTBDKYXZ' + 'KHHGFLBCSMDLDG',
- 'DZDBLZYYCXNNCSYB' + 'ZBFGLZZXSWMSCCMQ' + 'NJQSBDQSJTXXMBLT' +
- 'XZCLZSHZCXRQJGJY' + 'LXZFJPHYXZQQYDFQ' + 'JJLZZNZJCDGZYG',
- 'CTXMZYSCTLKPHTXH' + 'TLBJXJLXSCDQXCBB' + 'TJFQZFSLTJBTKQBX' +
- 'XJJLJCHCZDBZJDCZ' + 'JDCPRNPQCJPFCZLC' + 'LZXBDMXMPHJSGZ',
- 'GSZZQLYLWTJPFSYA' + 'SMCJBTZYYCWMYTCS' + 'JJLQCQLWZMALBXYF' +
- 'BPNLSFHTGJWEJJXX' + 'GLLJSTGSHJQLZFKC' + 'GNNDSZFDEQFHBS',
- 'AQTGYLBXMMYGSZLD' + 'YDQMJJRGBJTKGDHG' + 'KBLQKBDMBYLXWCXY' +
- 'TTYBKMRTJZXQJBHL' + 'MHMJJZMQASLDCYXY' + 'QDLQCAFYWYXQHZ'
- );
-
- function ChnPy(Value: array of char): Char;
- begin
- Result := #0;
- case Byte(Value[0]) of
- 176:
- case Byte(Value[1]) of
- 161..196: Result := 'A';
- 197..254: Result := 'B';
- end;
- 177:
- Result := 'B';
- 178:
- case Byte(Value[1]) of
- 161..192: Result := 'B';
- 193..205: Result := 'C';
- 206: Result := 'S';
- 207..254: Result := 'C';
- end;
- 179:
- Result := 'C';
- 180:
- case Byte(Value[1]) of
- 161..237: Result := 'C';
- 238..254: Result := 'D';
- end;
- 181:
- Result := 'D';
- 182:
- case Byte(Value[1]) of
- 161..233: Result := 'D';
- 234..254: Result := 'E';
- end;
- 183:
- case Byte(Value[1]) of
- 161: Result := 'E';
- 162..254: Result := 'F';
- end;
- 184:
- case Byte(Value[1]) of
- 161..192: Result := 'F';
- 193..254: Result := 'G';
- end;
- 185:
- case Byte(Value[1]) of
- 161..253: Result := 'G';
- 254: Result := 'H';
- end;
- 186:
- Result := 'H';
- 187:
- case Byte(Value[1]) of
- 161..246: Result := 'H';
- 247..254: Result := 'J';
- end;
- 188..190:
- Result := 'J';
- 191:
- case Byte(Value[1]) of
- 161..165: Result := 'J';
- 166..254: Result := 'K';
- end;
- 192:
- case Byte(Value[1]) of
- 161..171: Result := 'K';
- 172..254: Result := 'L';
- end;
- 193:
- Result := 'L';
- 194:
- case Byte(Value[1]) of
- 161..231: Result := 'L';
- 232..254: Result := 'M';
- end;
- 195:
- Result := 'M';
- 196:
- case Byte(Value[1]) of
- 161..194: Result := 'M';
- 195..254: Result := 'N';
- end;
- 197:
- case Byte(Value[1]) of
- 161..181: Result := 'N';
- 182..189: Result := 'O';
- 190..254: Result := 'P';
- end;
- 198:
- case Byte(Value[1]) of
- 161..217: Result := 'P';
- 218..254: Result := 'Q';
- end;
- 199:
- Result := 'Q';
- 200:
- case Byte(Value[1]) of
- 161..186: Result := 'Q';
- 187..245: Result := 'R';
- 246..254: Result := 'S';
- end;
- 201..202:
- Result := 'S';
- 203:
- case Byte(Value[1]) of
- 161..249: Result := 'S';
- 250..254: Result := 'T';
- end;
- 204:
- Result := 'T';
- 205:
- case Byte(Value[1]) of
- 161..217: Result := 'T';
- 218..254: Result := 'W';
- end;
- 206:
- case Byte(Value[1]) of
- 161..243: Result := 'W';
- 244..254: Result := 'X';
- end;
- 207..208:
- Result := 'X';
- 209:
- case Byte(Value[1]) of
- 161..184: Result := 'X';
- 185..254: Result := 'Y';
- end;
- 210..211:
- Result := 'Y';
- 212:
- case Byte(Value[1]) of
- 161..208: Result := 'Y';
- 209..254: Result := 'Z';
- end;
- 213..215:
- Result := 'Z';
- 216..247:
- Result := py[Byte(Value[0])][Byte(Value[1]) - 160];
- end;
- end;
-
- function ChnToPY(Value: string): string;
- var
- I, L: Integer;
- C: array[0..1] of char;
- R: Char;
- begin
- Result := '';
- L := Length(Value);
- I := 1;
- while I <= (L - 1) do
- begin
- if Value[I] < #160 then
- begin
- Result := Result + Value[I];
- Inc(I);
- end
- else
- begin
- C[0] := Value[I];
- C[1] := Value[I + 1];
- R := ChnPY(C);
- if r <> #0 then
- Result := Result + R;
- Inc(I, 2);
- end;
- end;
- if I = L then
- Result := Result + Value[L];
- end;
-
- procedure TForm1.Edit1Change(Sender: TObject);
- begin
- edit2.Text := ChnToPY(trim(edit1.Text));
- end;
-
- end.
|