首页  编辑  

处理IDE特殊字符

Tags: /超级猛料/Friends.网友专栏/zswang/函数大全/   Date Created:

(*//

标题:处理IDE特殊字符

说明:就算Borland公司的人看了也会下一跳!

设计:Zswang

日期:2002-04-18

支持:wjhu111@21cn.com

//*)

///////Begin Source

const

 cIDEc: array[#0..#255] of string =

(

'^'#64, '^'#97, '^'#98, '^'#99, '^'#100, '^'#101, '^'#102, '^'#103, '^'#104,

'^'#105, '^'#106, '^'#107, '^'#108, '^'#109, '^'#110, '^'#111, '^'#112, '^'#113,

'^'#114, '^'#115, '^'#116, '^'#117, '^'#118, '^'#119, '^'#120, '^'#121, '^'#122,

'^'#91, '^'#92, '^'#93, '^'#94, '^'#95, '^'#96, '#33', '#34', '#35', '#36',

'#37', '#38', '#39', '#40', '#41', '#42', '#43', '#44', '#45', '#46', '#47',

'#48', '#49', '#50', '#51', '#52', '#53', '#54', '#55', '#56', '#57', '#58',

'^'#123, '^'#124, '^'#125, '^'#126, '^'#127, '#64', '^'#1, '^'#2, '^'#3, '^'#4,

'^'#5, '^'#6, '^'#7, '^'#8, '^'#9, '^'#10, '^'#11, '^'#12, '^'#13, '^'#14,

'^'#15, '^'#16, '^'#17, '^'#18, '^'#19, '^'#20, '^'#21, '^'#22, '^'#23, '^'#24,

'^'#25, '^'#26, '^'#27, '^'#28, '^'#29, '^'#30, '^'#31, '^'#32, '^'#33, '^'#34,

'^'#35, '^'#36, '^'#37, '^'#38, '^'#39, '^'#40, '^'#41, '^'#42, '^'#43, '^'#44,

'^'#45, '^'#46, '^'#47, '^'#48, '^'#49, '^'#50, '^'#51, '^'#52, '^'#53,

'^'#54, '^'#55, '^'#56, '^'#57, '^'#58, '^'#59, '^'#60, '^'#61, '^'#62,

'^'#63, '^'#192, '^'#193, '^'#194, '^'#195, '^'#196, '^'#197, '^'#198, '^'#199,

'^'#200, '^'#201, '^'#202, '^'#203, '^'#204, '^'#205, '^'#206, '^'#207, '^'#208,

'^'#209, '^'#210, '^'#211, '^'#212, '^'#213, '^'#214, '^'#215, '^'#216, '^'#217,

'^'#218, '^'#219, '^'#220, '^'#221, '^'#222, '^'#223, '^'#224, '^'#225, '^'#226,

'^'#227, '^'#228, '^'#229, '^'#230, '^'#231, '^'#232, '^'#233, '^'#234, '^'#235,

'^'#236, '^'#237, '^'#238, '^'#239, '^'#240, '^'#241, '^'#242, '^'#243, '^'#244,

'^'#245, '^'#246, '^'#247, '^'#248, '^'#249, '^'#250, '^'#251, '^'#252, '^'#253,

'^'#254, '^'#255, '^'#128, '^'#129, '^'#130, '^'#131, '^'#132, '^'#133, '^'#134,

'^'#135, '^'#136, '^'#137, '^'#138, '^'#139, '^'#140, '^'#141, '^'#142, '^'#143,

'^'#144, '^'#145, '^'#146, '^'#147, '^'#148, '^'#149, '^'#150, '^'#151, '^'#152,

'^'#153, '^'#154, '^'#155, '^'#156, '^'#157, '^'#158, '^'#159, '^'#160, '^'#161,

'^'#162, '^'#163, '^'#164, '^'#165, '^'#166, '^'#167, '^'#168, '^'#169, '^'#170,

'^'#171, '^'#172, '^'#173, '^'#174, '^'#175, '^'#176, '^'#177, '^'#178, '^'#179,

'^'#180, '^'#181, '^'#182, '^'#183, '^'#184, '^'#185, '^'#186, '^'#187, '^'#188,

'^'#189, '^'#190, '^'#191);

function StrToIDEc(mStr: string): string;

var

 I: Integer;

begin

 Result := '';

 for I := 1 to Length(mStr) do

   Result := Result + cIDEc[mStr[I]];

end; { StrToIDEc }

function IDEcToStr(mIDEc: string): string;

var

 C: Char;

 I, L: Integer;

 T: string;

begin

 Result := '';

 I := 1;

 L := Length(mIDEc);

 mIDEc := LowerCase(mIDEc);

 while I <= L do begin

   if mIDEc[I] = '^' then begin

     for C := #0 to #255 do

       if cIDEc[C] = Copy(mIDEc, I, 2) then begin

         Result := Result + C;

         Inc(I, 2);

         Break;

       end;

   end else if mIDEc[I] = '#' then begin

     T := '';

     Inc(I);

     while mIDEc[I] in ['0'..'9'] do begin

       T := T + mIDEc[I];

       Inc(I);

     end;

     if T <> '' then Result := Result + Chr(StrToIntDef(T, 0));

   end else Inc(I);

 end;

end; { IDEcToStr }

///////End Source

///////Begin Demo

procedure TForm1.Button1Click(Sender: TObject);

begin

 Clipboard.AsText := StrToIDEc(Edit1.Text);

 Caption := IDEcToStr(Clipboard.AsText);

 ShowMessage(^^!^3^4^%);

end;

///////Edn Demo