Red de conocimiento informático - Computadora portátil - ¿Cómo obtener la primera letra de cada carácter en el texto de edición en Delphi?

¿Cómo obtener la primera letra de cada carácter en el texto de edición en Delphi?

Resulta que tengo una función de este tipo

Es un poco larga, pero definitivamente funciona

const py: array[216...247] of string = (

{216}'CJWGNSPGCGNESYPB' 'TYYZDXYKYGTDJNMJ' ' QMBSGZSCYJSYYZPG'

{216}'KBZGYCYWYKGKLJSW' 'KPJQHYZWDDZLSGMR' 'YPYWWCCKZNKYDG',

{217}'TTNJJEYKKZYTCJNM' ' QLYPYQFQRPZSL ' ' WBTGKJFYXJWZLTBN'

{217}'CXJJJZXDTTSQZYC' 'DXXHGCKBPHFFSSYY' 'BGMXLPBYLLLHLX',

{218}' SPZMYJHSOJNGHDZQ' 'YKLGJHXGQZHXQGKE' 'ZZWYSCJXYEYXAD'

{218 }'ZPMDSSMZJZQJYZCD' 'JEWQJBDZBXGZNZCP' 'WHKXHQKMWFBPBY',

{219}'DTJZKQHYLYGXFPT' 'YJYYZPSZLFCHMQSH' 'GMXXSXJJSDCSBBQB'

{219}'EFSJYHXWGZKPYLQB'' GL DLCCTNMAYDDKSS' 'NGYCSGXLYZAYBN ',

{220}'PTSDKDYLHGYMYLCX' 'PYCJNDQJWXQXFYYF' 'JLEJBZRXCCQWQQSB'

{220}'ZKYMGPLBMJRQCFLN' 'YMYQMSQYRBCJTHZT' 'QFRXQHXMJCJLX',

{221 }' ' WYWSBHTRXXGLHQHF' 'NMCYKLDYXZPWLGGS'

{222}' MTCFPAJJZYLJTYAN' 'JGBJPLQGDZYQYAXB' 'KYSECJSZNSLYZH',

{223}'ZXLZCGHPXZHZNYTD' 'SBCJKDLZAYFMYDLE' DNYS'

{223}'KJSHDLYXBC GHXYPK'' ' DQMMZNGMMCLGWZSZ'' ' TCZG'、

{225}'WWMZFFJQQQYXACL' 'BHKDJXDGMMYDJXZL' 'LSYGXGKJRYWZWYCL'

{225}'ZMSSJZLDBYDCPCXY' 'HLXCHYZJQSQQAGMN' 'YXPFRKSSBJLYXY',

{226}' SYGLNSCMHCWWMNZJ' 'JLXXHCHSYD CTXRY' 'CYXBYHCSMXJSZNPW'

{226}'GPXXTAYBGAJCXLYS' 'DCCWZOCWKCCSBNHC' 'PDYZNFCYTYCKX',

{227}'KYBSQKYTQQXFCWC' 'HCYKELZQBSQYJQCC' ' LM THSYWHMKTLKJLY' < / p>

{227}'CXWHEQQHTQHZPQSQ' 'SCFYMMDMGBWHWLGS' 'LLYSDLMLXPTHMJ',

{228}' HWLJZYHZJXHTXJLH' 'XRSWLWZJCBXMHZQX' 'SDZPMGFCSGLSXYMJ'

{228}'SHXPJX WMYQKSMYPL' 'RTHBXFTPMHYXLCHL' 'HLZYLXGSSSSTCL',

{229}'SLDCLRPBHZHXYYFH' 'BBGDMYCNQQWLQHJJ' 'ZYWJZYEJDHPBLQX'

{229}'TQKWHLCHQXAGTLXL' 'JXMSLXHTZKZJECXJ' 'MFBYCSFY WYB',

<p> GXD' 'LQFSGDSLQWZKXTMH ' 'SBGZMJZRGLYJBPML'

{231}'MSXLZJQHZSJCZYD' ' JWBMJKLDDPMJEGXY' 'HYLXHLQYQHKYCW',

{232}'CJMYYXNATJHYCCXZ' 'PCQLBZWWYTWB QCML ' 'PMYRJCCCXFPZNZZL '

{232}' JPLXXYZTZLGDLDCK' 'LYRLZGQTGJHHGJLJ' 'AXFGFJZSLCFDQZ',

{233}'LCLGJDJCSNCLLJPJ' 'QDCCLCJXMYZFTSXG' 'CGSBRZXJQQCTZHGY'

{233}'QTJQQLZXJYLYLBCY ' 'AMCSTYLPDJBYREGK' 'JZYZHLYSZQLZNW ',

{234}'CZCLLWJQJJJKDGJZ' 'OLBBZPPGLGHTGZXY' 'GHZMYCNQSYCYHBHG'

{234}'XKAMTXYXNBSKYZZG'

'JZLQJDFCJXDYGJQJ' 'JPMGWGJPKQSB',

{235}'GBMMCJSSCLPQPDXC' 'DYYKYWCJDDYYGYWR' 'HJRTGZNYQLDKLJSZ'

{235}'ZGZQZJGDYKSHPZMT' 'LCPWNJAFYZDJCNMW' 'ESCYGLBT ZCG MSS',

<p> QDMMG' ' LYDXMJGDHCDYZBFF' 'ALLZTDLTFXMXQZDN'

{237}'GWQDBDCZJDXBZGSQ' 'QDDJCMBKZFFXMKDM' 'DSYYSZCMLJDSYN',

{238}'SPRSKMKMPCKLGDBQ' 'TFZSWTFGGLYPLLJZ' ' HGJGYPZLTCSMCNB '

{238}'TJBQFKTHBYZGKPBB' 'YMTDSSXTBNPDKLEY' 'CJNYCDYKZDDHQH',

{239}'SDZSCTARLLTKZLGE' 'CLLKJLQJAQNBDKKG' 'HPJTZQKSECSHALQF'

{239}'MMGJNLYJBBTMLYZ X' 'DCJPLDLPCQDHZYCB' 'ZSCZBZMSLJFLKR',

{240}'ZJSNFRGJHXPDHYJY' 'BZGDLJCSEZGXLBLH' 'YXTWMABCHECMWYJY'

{240}'ZLLJJYHLGBDJLSLY' ' ZXJYYZLWCXS ' 'Z FGWYDYYDLYHCLJS',

<p> JCHGMFPRXHJGDYCH' 'GHLYRZQLCYQJNZSQ'

{ 242}'TKQJYMSZSWLCFQQQQQ' 'XYFGGYPTQWLMCRNF' 'KKFSYYLQBMQAMM',

{243}' MYXCTPSHCPTXXZZS' 'MPHPSHMCLMLDQFYQ' 'XSZYJDJ ZHQPDSZ'

{243}'GLSTJBCKBXYQZJSG' 'PSXQZQZRQTBDKYXZ' 'KHHGFLCSMDLDG',

{244}'DZDBLZYYCXNNCSYB' 'ZBFGLZZXSWMSCCMQ' 'NJQSBDQ

SJTXXMBLT'

{244}' >

{245 }' LLJSTGSHJQLZFKC' 'GNNDSZFDEQFHBS',

{247}'AQTGYLBXMMYGSZLD' 'YDQMJJRGBJTKGDHG' 'KBLQKBDMBYLXWCXY'

{247}'TTYBKMRTJZXQJBHL' 'MHMJJZMQASLDCYXY' 'QDLQCAFYWYXQHZ'

>

función ChnPy(Valor: matriz de caracteres):Char;

comenzar

Resultado:= #0;

caso Byte(Valor[0 ]) de

176:

caso Byte( Valor[1]) de

161...196: Resultado:= 'A';

p>

197..254: Resultado:= 'B';

fin; {caso}

177:

Resultado:= 'B ';

178:

caso Byte (Valor[1]) de

161...192: Resultado:= 'B';

193...205: Resultado:= 'C';

206: Resultado:= 'S';

207..254.Resultado:= 'C ';

fin {caso}

179:

Resultado:= 'C';

180:

caso Byte(Valor[1]) de

161 ...237: Resultado:= 'C';

238..254: Resultado:= 'D'

fin;

181:

Resultado := 'D';

182:

p>

caso Byte(Valor[1]) de

161...233: Resultado:= 'D';

234..254: Resultado:= ' E'

fin; >

183:

caso Byte(Valor[1]) de

161: Resultado := 'E';

162...254 .Resultado :=

'F';

fin; {caso}

184:

caso Byte(Valor[1]) de

161. ..192: Resultado:= 'F';

193...254: Resultado:= 'G';

fin {caso}

185:

caso Byte(Valor[1]) de

161...253: Resultado:= 'G';

254: Resultado:= 'H';

fin; {caso}

186:

Resultado := 'H'; p> p>

case Byte(Valor[1]) de

161...246: Resultado:= 'H';

247..254: Resultado: = 'J';

fin; {caso}

188...190:

Resultado:= 'J'; > 191 :

case Byte(Valor[1]) de

161...165: Resultado := 'J';

166..254 : Resultado := 'K';

fin; {caso}

192:

caso Byte(Valor[1]) de

161...171: Resultado:= 'K';

172..254: Resultado:= 'L';

fin;

> 193:

Resultado := 'L'

194:

caso Byte(Valor[1]) de

161...231: Resultado:= 'L';

232..254: Resultado:= 'M';

fin {caso}

195:

Resultado:= 'M';

196:

caso Byte(Valor[1]) de

161 ...194: Resultado: = 'M';

195..254: Resultado: = 'N';

197:

caso Byte(Valor[1]) de

161...181: Resultado:= 'N';

182. .. 189: Resultado:= 'O';

190..254.Resultado:= 'P';

fin {caso}

198 :

caso Byte(Valor[1]) de

161...217: Resultado:= 'P';

218..254: Resultado := 'Q';

fin; {caso}

199:

Resultado := 'Q';

p>

caso Byte(Valor[1]) o

f

161...186: Resultado:= 'Q';

187..245: Resultado:= 'R';

246.. 254: Resultado:= 'S';

fin; {caso}

201..202:

Resultado:= 'S';

203:

caso Byte(Valor[1]) de

161...249: Resultado:= 'S'; ..254: Resultado:= 'T';

fin; {caso}

204:

Resultado:= 'T';

205:

case Byte(Valor[1 ]) de

161...217: Resultado:= 'T'; .254: Resultado:= 'W';

fin; {caso}

206:

caso Byte(Valor[1]) de

161...243: Resultado: = 'W';

244..254: Resultado: = 'X'; p>

207...208:

Resultado: = 'X';

209:

caso Byte(Valor[1]) de

161...184: Resultado: = 'X';

185..254: Resultado: = 'Y'

fin; }

210..211:

Resultado := 'Y';

212:

caso Byte(Valor[1] ) de

161...208: Resultado:= 'Y';

209..254: Resultado:= 'Z';

fin; {caso}

213...215:

Resultado := 'Z'

216..247:

Resultado; := py[Byte(Valor[0])][Byte(Valor[1]) - 160];

fin; p>función TitemMag.ChnToPY( Valor: cadena): cadena

var

I, L: Entero

C: matriz[0..1; ] de char;

R: Char;

comenzar

Resultado:= '';

L: .= Longitud(Valor );

I := 1;

mientras que lt; = (L - 1) hago

comenzar

si Valor[ I] lt; #160 entonces

comenzar

Resultado:= Valor del resultado[I];

Inc(I);

<

p> fin

más

comienzo

C[0]:= Valor[I];

C[1]:= Valor[I 1];

R:= ChnPY(C);

si r lt;gt; #0 entonces

Resultado:= Resultado R;

Inc(I, 2);

fin

fin

si I = L entonces

Resultado:= Valor del resultado[L];

fin;