же пунктуацию
Походу дела переводим слова написанные заглавными в прописные искл}
procedure DeleteNotWord(var Simvols:TSimvols);
var
NewArray:TSimvols;
i:Integer;
Simvol:TSimvol;
NewStatement:Boolean;
procedure MakeDown(var Word:String);
Var
Ch1:WideChar;
i:Integer;
begin
if Length(Word)>0 then ch1:=Word[1] else ch1:=#0;
if isUpAlfa(Ch1) then
begin
for i:=2 to Length(Word) do
if isUpAlfa(Word[i]) then exit;
if ('А'<=Ch1) and (CH1<='Я') then Ch1:=WideChar(Ord('а')+(Ord(Ch1)-Ord('А')));
if ('Ё'=Ch1) then Ch1:='ё';
if ('A'<=Ch1) and (CH1<='Z') then Ch1:=WideChar(Ord('a')+(Ord(Ch1)-Ord('A')));
Word[1]:=ch1;
end;
end;
begin
NewArray:=TSimvols.Create(TComparer<TSimvol>.Construct(CompareSimvov));
NewStatement:=True;
for i:=1 to Simvols.Count-1 do
begin
if Simvols[i].Kind=skWord then
begin
Simvol:=Simvols[i];
if NewStatement then
MakeDown(Simvol.Value);
NewArray.Add(Simvol);
end;
if Simvols[i].Value='.' then NewStatement:=True
else if (Simvols[i].Kind=skSpace) and (NewStatement=True) then NewStatement:=True
else NewStatement:=False;
end;
Simvols.Destroy;
Simvols:=NewArray;
end;
эммм... обзывать переменную зарезервированным словом?
подозреваю, что TSimvols.Add выделяет память, не очищаемую при TSimvols.Destroy
Так я с одного списка во второй переношу все кроме мусора. А то что выделено идёт в результ...
Обсуждают сегодня