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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2010, 02:53   #1
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию Не удаляет элементы

Здравствуйте! Помогите разобраться, хочу удалить все элементы до ключевого, в данном случаи ключевой это Country, но удаляет почему-то только первый элемент в списке и все. В чем проблема ?

Код:
var
  S, Country: string;
  R: TStringList;
  I, IRegion: Integer;
begin
  R := TStringList.Create;
  R.Text := List.Text;
  Country := CountryEdit.Text;
  for IRegion := 0 to R.Count - 1 do
  begin
      S := R.Strings[IRegion];
      Delete(S, PosUp('-', S) - 1, Length(S));
      if S <> Country then
         R.Delete(IRegion)
      else
         Break;
  end;
  R.SaveToFile('C:\1.Txt');
  R.Free;
end;
RIO вне форума Ответить с цитированием
Старый 16.11.2010, 08:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А пошаговкой пройтись?
Может у тебя в Country содержится не совсем то что в списке, паример пробелы по бокам, или разными регистрами символы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.11.2010, 15:16   #3
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Все хорошо с этим...
RIO вне форума Ответить с цитированием
Старый 16.11.2010, 16:04   #4
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,239
По умолчанию

Так оно, или нет, смотрите:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    CountryEdit: TEdit;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  S, Country: string;
  R: TStringList;
  I, IRegion: Integer;
  B :Boolean;
begin
  R := TStringList.Create;
  R.Text := Memo1.Lines.Text;
  Country := CountryEdit.Text;
   try
  B := True;
  IRegion := 0;
  while B and (IRegion <= R.Count-1) do
  begin
      S := R.Strings[IRegion];
      Delete(S, Pos('-', S), Length(S) - Pos('-', S) + 1);
      if S <> Country then
      begin
       R.Delete(IRegion);
       IRegion := -1; // в начало т.к Inc(IRegion)
      end
       else
      B := False;
      Inc(IRegion);
  end;
  R.SaveToFile('C:\1.Txt');
   finally
  R.Free;
   end;
end;

end.

Последний раз редактировалось Alter; 16.11.2010 в 17:59.
Alter вне форума Ответить с цитированием
Старый 16.11.2010, 16:11   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

To RIO :
А убрать
Код:
      else
         Break;
не пробовали ?
mihali4 вне форума Ответить с цитированием
Старый 16.11.2010, 21:30   #6
RIO
Форумчанин
 
Аватар для RIO
 
Регистрация: 15.12.2007
Сообщений: 422
По умолчанию

Спасибо всем
RIO вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel 2007 удаляет данные. demONx6 Microsoft Office Excel 12 08.04.2010 15:26
1.Найти в матрице первую строку, все элементы которой отрицательны 2.отсортировать элементы массива по в w0lf16 Помощь студентам 2 22.11.2009 15:47
Не все удаляет AgressiveBehavior Общие вопросы Delphi 2 29.09.2009 21:18
SHFileOperation Function не удаляет Roont Общие вопросы C/C++ 3 15.07.2009 10:33
Какой оператор удаляет пробелы ВНУТРИ строки? Maxx Microsoft Office Excel 3 09.12.2008 11:34