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


Автор: Pcrepair 22.2.2012, 21:39
Добрый день!
есть простой код

Код

procedure TForm1.Delete(T: TStringList; LeftLimit: String; RightLimit: String);
var
  s: AnsiString;
  index1, index2, len, i: integer;
begin
  len := Length(RightLimit);
  index1 := AnsiPos(LeftLimit, s);
  while (index1 <> 0) do
  begin
    index2 := index1;
    i := 1;
    while (i <> Length(RightLimit) + 1) do
    begin
      Inc(index2);
      if s[index2] = RightLimit[i] then
        Inc(i)
      else
        i := 1;
    end;
    Delete(s, index1, index2 - index1 + 1);
    index1 := AnsiPos(LeftLimit, s);
  end;
end;  

Который удаляет символы в файле
Проблема:
Borland Delphi Enterprise Version 7.0 (Build 4.453) - компиляция в норме
Embarcadero RAD Studio 2010 Version 14.0.3513.24210 - выдает ошибку:
if s[index2] = RightLimit then //в этом месте
отладчик пишет:
E2015 Operator not applicable to this operand type
Вопросы:
1. как такое можеть быть, ведь код простейший
2. что делать с RAD Studio 2010. чтоб все заработало
Поиск ничего дельного не дал
Всем спасибо

Автор: Rennigth 23.2.2012, 02:49
Pcrepair, D2010 у меня нет, но насколько я знаю, string в ней это уже не AnsiString, а UnicodeString(как-то так). А ты пытаешься  к AnsiString присвоить, в этом наверное и проблема. Типы к одному сведи.

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