Для начала код:
| Код | function TForm1.CharChange(s:string):string; const Table1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; Table2:array[1..52] of string=('а','б','ц','д','е','ф','г','х','и','дж','к','л','м','н','о','п','кю','р','с','т','у','в','в','кс','й','з','А','Б','Ц','Д','Е','Ф','Г','Х','И','Дж','К','Л','М','Н','О','П','Кю','Р','С','Т','У','В','В','Кс','Й','З'); var strinch:string; i:integer; begin strinch:=''; for i:=0 to Length(s) do begin if Pos(s[i],Table1)>0 then strinch:=strinch+Table2[Pos(s[i],Table1)] else strinch:=strinch+s[i]; end; Result:=strinch; end;
|
Проблема такая, в переменную Result ничего не поступает. Переменная strinch так же пуста. Результат от Pos(s[i],Table1) как и требуется, всегда указывает на символ. А вот Table2[Pos(s[i],Table1] не могу получить, хоть убей не пойму что за беда. Почему нет доступа к этому массиву?
З.ы. функция меняет английские буквы на их русское написание(что-то вроде транслита).
Если вот так: strinch:=Table2[Pos(s[i],Table1)], то по одному символу поступает... впорос, почему не хочет конкатенировать строки? |