¿Cómo obtener la primera letra de cada carácter en el texto de edición en Delphi?
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;