ctable.pas

来自「千年源代码,只缺少控件,可以做二次开发用,好不容易得来的」· PAS 代码 · 共 536 行

PAS
536
字号
unit CTable;

interface

uses windows, sysutils;


var
///////////////////////
//      老馆         //
///////////////////////
   CharTable0 : array [0..296-1] of byte = (
   1, 1, 1, 1, 1, 1,            // 0  叭扁
   0, 0, 0, 0, 0, 0,            // 1
   0, 0, 0, 0, 0, 0,            // 2
   0, 0, 0, 0, 0, 0,            // 3
   0, 0, 0, 0, 0, 0,            // 4
   1, 1, 1, 1, 1, 1,            // 5
   1, 1, 1, 1, 1, 1,            // 6
   1, 1, 1, 1, 1, 1,            // 7

   1, 1, 1, 1, 1, 1,            // 0  带傈叭扁
   0, 0, 0, 0, 0, 0,            // 1
   0, 0, 0, 0, 0, 0,            // 2
   0, 0, 0, 0, 0, 0,            // 3
   0, 0, 0, 0, 0, 0,            // 4
   1, 1, 1, 1, 1, 1,            // 5
   1, 1, 1, 1, 1, 1,            // 6
   1, 1, 1, 1, 1, 1,            // 7

   1, 1, 1,                     // 0  如甸扁
   0, 0, 0,                     // 1
   0, 0, 0,                     // 2
   0, 0, 0,                     // 3
   0, 0, 0,                     // 4
   1, 1, 1,                     // 5
   1, 1, 1,                     // 6
   1, 1, 1,                     // 7

   1, 1, 1, 1, 1, 1,            // 0  旧扁
   0, 0, 0, 0, 0, 0,            // 1
   0, 0, 0, 0, 0, 0,            // 2
   0, 0, 0, 0, 0, 0,            // 3
   0, 0, 0, 0, 0, 0,            // 4
   1, 1, 1, 1, 1, 1,            // 5
   1, 1, 1, 1, 1, 1,            // 6
   1, 1, 1, 1, 1, 1,            // 7

   1, 1, 1,                     // 0  带傈如甸扁
   0, 0, 0,                     // 1
   0, 0, 0,                     // 2
   0, 0, 0,                     // 3
   0, 0, 0,                     // 4
   1, 1, 1,                     // 5
   1, 1, 1,                     // 6
   1, 1, 1,                     // 7


   1, 1, 1, 1,                  // 0  嘎扁
   0, 0, 0, 0,                  // 1
   0, 0, 0, 0,                  // 2
   0, 0, 0, 0,                  // 3
   0, 0, 0, 0,                  // 4
   1, 1, 1, 1,                  // 5
   1, 1, 1, 1,                  // 6
   1, 1, 1, 1,                  // 7


   0, 0, 0, 0, 0, 0,            // 0  磷扁
   0, 0, 0, 0, 0, 0,            // 1
   0, 0, 0, 0, 0, 0,            // 2
   1, 1, 1, 1, 1, 1,            // 3
   1, 1, 1, 1, 1, 1,            // 4
   1, 1, 1, 1, 1, 1,            // 5
   1, 1, 1, 1, 1, 1,            // 6
   0, 0, 0, 0, 0, 0,            // 7


   1, 1, 1,                     // 0  牢荤窍扁
   0, 0, 0,                     // 1
   0, 0, 0,                     // 2
   0, 0, 0,                     // 3
   0, 0, 0,                     // 4
   1, 1, 1,                     // 5
   1, 1, 1,                     // 6
   1, 1, 1                      // 7
   );

///////////////////////
//      鼻过         //
///////////////////////
   CharTable1 : array [0..104-1] of byte;
//    = ( );

///////////////////////
// 八过, 档过, 捧过  //
///////////////////////
   CharTable2 : array [0..72-1] of byte = (
     1,0,0,1,1,1,1,1,1,
     0,0,0,0,1,1,1,1,0,
     0,0,0,0,1,1,1,1,0,
     0,0,0,0,1,1,1,1,0,
     1,0,0,0,0,0,0,0,1,
     1,1,0,0,0,0,0,0,1,
     1,1,1,1,0,0,0,0,0,
     1,1,1,1,0,0,0,0,1
   );

///////////////////////
//      硼过         //
///////////////////////
   CharTable3 : array [0..64-1] of byte = (
     1,0,0,1,1,1,1,1,
     0,0,0,1,1,1,1,1,
     0,0,0,1,1,1,1,1,
     0,0,0,0,1,1,0,0,
     0,0,0,0,0,0,0,0,
     1,1,0,0,0,0,0,0,
     1,1,1,0,0,0,0,0,
     1,0,0,1,0,0,1,1
   );

///////////////////////
//      泵贱         //
///////////////////////
   CharTable4 : array [0..40-1] of byte = (
     1,1,1,1,1,
     0,0,0,0,0,
     0,0,0,0,0,
     0,0,0,0,0,
     0,0,0,0,0,
     1,1,1,1,1,
     1,1,1,1,1,
     1,1,1,1,1
   );


const
   DontDataCount = 192;
   DontData : array [0..DontDataCount-1] of string = (

'俺串',
'俺 货',
'俺斥',
'俺仇',
'俺货',
'俺货尝',
'俺货夫',
'俺货府',
'俺溅夫',
'俺溅府',
'俺溅具',
'俺绞技',
'俺截尝',
'俺截夫',
'俺截府',
'俺久技',
'俺磊交',
'俺磊侥',
'霸 斥',
'霸 货',
'霸斥',
'霸货',
'霸货尝',
'霸货夫',
'霸货府',
'霸溅夫',
'霸溅府',
'霸溅具',
'霸奖技',
'霸绞技',
'霸截尝',
'霸截夫',
'霸久技',
'霸磊交',
'霸磊侥',
'彬蝶备',
'裁 癌',
'裁癌',
'吹扁固',
'吹固',
'吹固朝',
'吹固澄',
'吹固饿',
'吹固凡',
'聪扁固',
'聪固',
'聪固朝',
'聪固澄',
'聪固饿',
'聪固凡',
'聪固焊瘤',
'丛固',
'醋扁固',
'殿 脚',
'殿脚',
'顶斥',
'饿逞',
'固模',
'涵钧脚',
'捍 脚',
'捍脚',
'焊坷瘤',
'焊瘤矮',
'焊瘤鞍',
'焊瘤具',
'何 饿',
'何饿',
'阂舅',
'贺舅',
'洪脚',
'厚雷脚',
'葫脚',
'弧酒',
'磺坷瘤',
'磺瘤',
'荤鳖矫',
'惑 仇',
'惑仇',
'货尝',
'绩尝',
'技尝',
'冀胶',
'浆骇',
'浆婆',
'矫惯',
'矫惯斥',
'矫惯焊瘤',
'矫荷',
'矫呼',
'矫呼焊瘤',
'矫迫焊瘤',
'绞攀',
'ざ',
'轿啊瘤',
'轿啊骂',
'轿鳖瘤',
'街 斥',
'街 仇',
'街斥',
'街仇',
'截尝',
'劫',
'洁',
'泍尝',
'结 臂',
'结臂',
'介仇',
'疥尝',
'洰',
'涖尝',
'警骇',
'静国',
'揪淡',
'揪 大',
'揪 惯',
'揪 妻',
'揪大',
'揪惯',
'揪惯斥',
'揪规货',
'揪搖',
'揪国',
'揪骇',
'揪擴',
'揪荷',
'揪何饿',
'揪何凡',
'揪阂',
'揪贺',
'揪呼',
'揪捞国',
'揪捞宏',
'揪迫',
'揪迫斥',
'揪迫仇',
'揪妻',
'久 货',
'久',
'久货',
'久货尝',
'久技府',
'久溅府',
'久截府',
'久攀',
'久攀',
'久迫',
'局固',
'局厚',
'俊固',
'堪捍',
'腊 癌',
'腊癌',
'腊矫饿',
'腊矫凡',
'腊角且',
'磊酒瘤',
'棱 斥',
'棱 仇',
'棱斥',
'棱仇',
'鲤瘤',
'历饿',
'历廁',
'粒 攀',
'粒家',
'粒攀',
'隶 攀',
'隶鳖',
'隶攀',
'炼鳖',
'炼积柳',
'炼季',
'犥',
'两 唱',
'两',
'两唱',
'量',
'量',
'晾',
'瘤 饿',
'瘤饿',
'瘤廁',
'隆扁固',
'楼瘤',
'鹿骂',
'侣鳖',
'孪',
'埋饿',
'芒 斥',
'芒赤',
'芒斥',
'拳成斥' );
{
   DontData : array [0..98-1] of string = (
'俺串',
'俺货尝',
'俺截尝',
'俺磊交',
'俺磊侥',
'仇',
'串',
'聪扁固',
'聪固',
'聪固澄',
'丛固',
'醋扁固',
'殿脚',
'饿逞',
'固模',
'官焊',
'涵钧脚',
'捍脚',
'焊坷瘤',
'焊瘤',
'何饿',
'阂舅',
'贺舅',
'弧酒',
'磺坷瘤',
'磺瘤',
'荤啊瘤',
'惑仇',
'货尝',
'绩尝',
'技尝',
'矫惯',
'矫惯',
'矫惯斥',
'ざ',
'轿啊瘤',
'轿啊骂',
'轿鳖瘤',
'彬蝶备',
'街斥',
'街仇',
'截尝',
'劫',
'洁',
'泍尝',
'介仇',
'疥尝',
'洰',
'涖尝',
'揪大',
'揪惯',
'揪惯斥',
'揪规货',
'揪搖',
'揪国',
'揪何饿',
'揪阂',
'揪贺',
'揪捞国',
'揪捞宏',
'揪迫',
'揪迫斥',
'揪迫仇',
'揪妻',
'久',
'久货',
'久货尝',
'久截府',
'久攀',
'久迫',
'局固',
'局厚',
'堪捍',
'快警',
'磊酒瘤',
'磊瘤',
'鲤瘤',
'粒家',
'粒攀',
'炼鳖',
'炼积柳',
'炼季',
'犥',
'两',
'两唱',
'量',
'量',
'晾',
'隆扁固',
'楼瘤',
'鹿骂',
'侣鳖',
'孪',
'埋饿',
'矫何饿',
'芒赤',
'芒斥',
'拳成斥'   );
}

const
   ColorDataTable : array [0..512-1] of integer = (
// 坷府瘤朝
0,0,     16912,0,  10991,0,  19880,0,  19096,0, 25858,0,  8787,0,  29501,0,  29587,0,  13316,0,
7933,0,  4228,0,   31744,0,  992,0,    31,0,    32767,0,  0,3,     16912,3,  10991,3,  19880,3,
19096,3, 25858,3,  8787,3,   29501,3,  29587,3, 13316,3,  7933,3,  4228,3,   31744,3,  992,3,
31,3,    32767,3,  65535,3,  65535,3,  65535,3, 65535,3,  65535,3, 65535,3,  65535,3,  65535,3,
65535,3, 65535,3,  65535,3,  65535,3,  0,3,     0,3,      0,3,     0,3,      26238,3,  63395,3,
8533,3,  16281,3,  55316,3,  61709,3,  8037,3,  16297,3,  6646,3,  37582,3,  54560,3,  16306,3,
46124,3, 48169,3,  6054,3,   16313,3,  29454,3, 22185,3,  22094,3, 16319,3,  24890,3,  28302,3,
51216,3, 16322,3,  16326,3,  17547,3,  57876,3, 16325,3,  42507,3, 15465,3,  63672,3,  16328,3,
20323,3, 27262,3,  2946,3,   16332,3,  24347,3, 31521,3,  6649,3,  16335,3,  63095,3,  25265,3,
4562,3,  16337,3,  40710,3,  11989,3,  37894,3, 16338,3,  26113,3, 37911,3,  4956,3,   16340,3,
8157,3,  30123,3,  36762,3,  16341,3,  17823,3, 12538,3,  2181,3,  16343,3,  43363,3,  42670,3,
32226,3, 16344,3,  60810,3,  17320,3,  61305,3, 16345,3,  23744,3, 2529,3,   23824,3,  16347,3,
50270,3, 39217,3,  50798,3,  16348,3,  63035,3, 14342,3,  11101,3, 16350,3,  39610,3,  56312,3,
35748,3, 16351,3,  65518,3,  39202,3,  29575,3, 16352,3,  19235,3, 21531,3,  7859,3,   16353,3,
26824,3, 14766,3,  51003,3,  16353,3,  4831,3,  19677,3,  27909,3, 16354,3,  28725,3,  64737,3,
4087,3,  16355,3,  20665,3,  10528,3,  45050,3, 16355,3,  7638,3,  9481,3,   19699,3,  16356,3,
58857,3, 48099,3,  59082,3,  16356,3,  60576,3, 13452,3,  32105,3, 16357,3,  11487,3,  21789,3,
4279,3,  16358,3,  15309,3,  26239,3,  41118,3, 16358,3,  65430,3, 14319,3,  11528,3,  16359,3,
44975,3, 8810,3,   46559,3,  16359,3,  38766,3, 3071,3,   15118,3, 16360,3,  5953,3,   27413,3,
48256,3, 16360,3,  25595,3,  18834,3,  14882,3, 16361,3,  34625,3, 18419,3,  46048,3,  16361,3,
10114,3, 41030,3,  10663,3,  16362,3,  41379,3, 10510,3,  39782,3, 16362,3,  512,3,    22549,3,
2314,3,16363,3,28222,3,17689,3,29315,3,16363,3,38186,3,44143,3,55232,3,16363,3,
48561,3,61824,3,14514,3,16364,3,4597,3,8500,3,38219,3,16364,3,51059,3,62524,3,
60794,3,16364,3,51514,3,53581,3,16692,3,16365,3,36166,3,53042,3,36971,3,16365,3,
49724,3,46796,3,56083,3,16365,3,34533,3,1270,3,8481,3,16366,3,57618,3,60488,3,
25224,3,16366,3,11738,3,22214,3,40769,3,16366,3
);


function  ChangeDontSay (astr: string): string;

implementation

function  GetDontSayIndex (astr: string): integer;
var i: integer;
begin
   Result := -1;
   for i := 0 to DontDataCount-1 do begin
      if astr = dontdata[i] then begin
         Result := i;
         exit;
      end;
   end;
end;

function  ChangeDontSay (astr: string): string;
var
   nword, i, len, idx: integer;
   buffer : array [0..4096-1] of byte;
   rbuffer : array [0..4096-1] of byte;
   cbuf : array [0..32] of byte;
begin
   FillChar (Buffer, sizeof(Buffer), 0);
   StrPCopy (@Buffer, astr);
   len := Length (astr);
   move (Buffer, rBuffer, sizeof(rBuffer));

   for nword := 2 to 6 do begin
      i := 0;
      while ( i <= len - nword) do begin
//      for i := 0 to len - nword do begin
         move (buffer[i], cbuf, nword);
         cbuf[nword] := 0;
         idx := GetDontSayIndex (StrPas (@cbuf));
         if idx <> -1 then begin
            FillChar (rbuffer[i], nword, byte('*'));
         end;
         if buffer[i] > 127 then inc (i);
         inc (i);
      end;
   end;

   Result := StrPas (@rBuffer);
end;

//var
//   init_i : integer;


Initialization
begin
{
   FillChar (CharTable1, sizeof(CharTable1), 0);

   for Init_i := 0 to 768-1 do begin
      ColorTable[Init_i] := ColorTable[Init_i] shr 3;
   end;
}
end;

Finalization
begin
end;



end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?