Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 06.07.2014, 16:19   #1
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
Вопрос Удаление исключений из TStringList

Доброго времени суток! написал код
Код:
var
  FormMain: TFormMain;
  Exceptions: array[1..2] of string = ('text1.txt', 'text2.txt');

implementation

{$R *.dfm}

function GetException(s: string): Boolean;
var
  i: Integer;
begin
  Result := False;

  for i := 1 to 2 do
  begin
    if s = Exceptions[i] then
    begin
      Result := True;
      Break;
    end;
  end;
end;

procedure TFormMain.BRenameClick(Sender: TObject);
var
  SL: TStringList;
  i: Integer;
begin
  SL := TStringList.Create;
  SL.Add('text1.txt');
  SL.Add('qwerty.dat');

  for i := 0 to SL.Count - 1 do
  begin
    if GetException(SL.Strings[i]) then
    begin
      SL.Delete(i);
    end;
  end;

  FreeAndNil(SL);
end;
При проходе в цикле по следующей записи в StringList получаю ошибку List index out of bounds (1). По идее после удаления исключения нужно снова проверять запись и индексом 0, но идёт индекс 1. Не получается разобраться.
Shouldercannon вне форума
Старый 06.07.2014, 16:35   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
for i := SL.Count - 1 downto 0 do
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 06.07.2014, 17:30   #3
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Благодарю.
Shouldercannon вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление пусток строки, TStringList, как??? FleXik Общие вопросы Delphi 2 17.03.2013 14:35
удаление строки из TStringList Volkogriz Общие вопросы Delphi 15 02.02.2013 03:42
Обработка исключений с пoмощью структурированной обработки исключений Smart Visual C++ 3 01.11.2012 15:38
Поиск и удаление символа в TStringList sariman Общие вопросы Delphi 2 25.07.2012 23:56
Удаление дублирующихся строк в TStringList Alex Cones Общие вопросы Delphi 4 28.05.2010 20:33