
26.02.2010, 18:17
|
 |
Начинающий
|
|
Регистрация: 26.01.2010
Сообщения: 180
Репутация: 31
|
|
Вот что у меня получилось, программа должна модифицировать текст, введеный в мемо1 с помощью словаря settings.ini, и записать новый текст в мемо2. При компиляции ошибок нету, но при вводе слова и нажатии на кнопку вылетает с ошибкой.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
p,i,setarr: integer;
tmp, modif: string;
buf: tstringlist;
begin
setarr:=0;
buf:=tstringlist.Create;
for i:=0 to memo1.lines.Count-1 do
begin
//замена знаков на знаки с пробелами
tmp:=memo1.Lines[i];
tmp:=stringreplace(tmp,',',' ,',[rfReplaceAll]);
tmp:=stringreplace(tmp,'!',' !',[rfReplaceAll]);
tmp:=stringreplace(tmp,'?',' ?',[rfReplaceAll]);
tmp:=stringreplace(tmp,'.',' .',[rfReplaceAll]);
// начали разбиение на слова
while length(tmp)>0 do
begin
inc(setarr);// увеличиваем длину массива на 1
p:=pos(tmp,'');
SetLength(words,setarr);
words[i+1]:=copy(tmp,1,p);
delete(tmp,1,p);
end;
//заполнили массив словами и символами разделения
end;
//получаем измененные слова в строку
for i:=1 to setarr do
begin
modif:=modif+translate(words[i]);
end;
end;
function TForm1.translate(slovo: string): string; // функция перевода слов
var
changeword: string;
begin
tr:=tinifile.Create('settings.ini');
changeword:=tr.ReadString('translate', slovo, slovo); //ищем в словаре слово
result:=changeword;
end;
Если у кого-то есть время или желания, пожалуйста, помогите разобраться, 2й час бьюсь!
|