Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Совместимость Delphi Enterprise 7 и Embarcadero RAD Studio 2010


Pcrepair ©   (2012-02-22 22:42:00) 

Добрый день!
есть простой код

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. чтоб все заработало
Поиск ничего дельного не дал
Всем спасибо


Германн   (2012-02-23 01:10:00) [1]

У меня в старой программе до сих пор куча таких "недопортированных" процедур.
Портирование из 16-ти битной Дельфи в 32-битную было проще, чем портирование из Ansi в Юникод. Там хоть тип Char не менялся.


Pcrepair   (2012-02-22 23:04:00) [2]

Помогло! все сделал string
Спасибо


DVM   (2012-02-22 22:59:00) [3]


> if s[index2] = RightLimit then //в этом месте


s, LeftLimit и RightLimit приведи к одному типу, либо string либо ansistring


Наверх

Титульная страница Поиск, карта сайта Написать письмо