Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

процедуры Delete и Insert при работе со строками

6.2K
18 августа 2006 года
zercalo
75 / / 05.06.2006
Мне необходимо сделать простую манипуляцию.. . Стереть из строки один знак и вставить на его место другой.. . И всё было бы нормально, если б не микрософт и борланд..).
Код:
begin
  st:=':';
  with Memo1.Lines do
  for i:=Count-1 downto 0 do
    begin
      s:=Strings;
      ndx:=Pos(st,s);
      if ndx>0 then
        begin
      Delete(s,ndx-1,1);
      Insert(s,ndx,'-');
        end;
    end;
end;

в цикле с memo подчеркнутые команды не выполняются, ибо подразумевают другие параметры. Можно ли как-нибудь всё-таки осуществить задуманное?..).
5
18 августа 2006 года
hardcase
4.5K / / 09.08.2005
после Insert допиши:
Strings:=s;
10
18 августа 2006 года
Freeman
3.2K / / 06.03.2004
[QUOTE=zercalo]Можно ли как-нибудь всё-таки осуществить задуманное?..).[/QUOTE]
Над задуманным тобой способом думай сам. Есть более простой путь:
 
Код:
s := StringReplace(s, st, '-', []);
6.2K
19 августа 2006 года
zercalo
75 / / 05.06.2006
2hardcase
нет.. . Тут дело в том, что при в данном случае процедуры Delete и Insert не проходят компиляцию в том виде, в котором представил я.. . У процедуры Delete почему то вместо трех параметров становится возможным записать только один (саму строку). Типа Delete(Index:Integer).. А у Insert остается возможным два параметра Insert(Index:Integer,S:Integer).. . Поэтому, я просто не могу сделать то что хочу в цикле Memo
2Freeman
Эта одна строчка заменяет все мои потуги и прокатывает в цикле Memo.. . Спасибо, я не знал этой процедуры.. . Единственно, я не понял последнего параметра этой процедуры, определяемого как Flags:TReplaceFlags . Но всё работает..
5
20 августа 2006 года
hardcase
4.5K / / 09.08.2005
у тебя произошло замещение оласти видимости на TStrings в экземпляре Lines, так как ты написал with конструкцию и Insert и Delete ссылались на методы Memo1.Lines, а не на традиционные паскалёвские функции.
302
22 августа 2006 года
Sagittarius
648 / / 12.04.2003
Используй полные имена
 
Код:
System.Delete( s, ndx - 1, 1 );
System.Insert( s, ndx, '-' );
6.2K
23 августа 2006 года
zercalo
75 / / 05.06.2006
2hardcase
2Sagittarius
спасибо.. . А System обязательно учту на будущее.. .
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог