Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Нет доступа к массиву


Автор: Firex 5.9.2011, 17:07
Для начала код:
Код

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)], то по одному символу поступает... впорос, почему не хочет конкатенировать строки?

Автор: bems 5.9.2011, 18:47
для начала: индексация символов в строке в дельфи с единицы

Автор: Firex 5.9.2011, 19:15
Спасибо огромное, глупейший недочёт, заработало!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)