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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2011, 19:07   #1
rager06
Пользователь
 
Регистрация: 08.09.2010
Сообщений: 17
По умолчанию Вывод удовлетворяющих условию строк из одного TMemo в другой

Доброго дня.. Такой вопрос, у меня есть Memo1, в который загружается текст из файла посредствам записей(Record). Есть Memo2, в который нужно передать строки из Memo1, которые удовлетваряли бы условию.
Есть, допустим, такой список:
Цитата:
1. ФИО: Пупкин В.И.
Площадь: 20
Поставлен на учет 22.03.1998г.
2. ФИО: Иванов И.В.
Площадь: 45
Поставлен на учет 15.04.1998г.
3. ФИО: Петров Н.П.
Площадь: 50
Поставлен на учет 15.04.1998г.
4. ФИО: Сидоров М.А.
Площадь: 100
Поставлен на учет 27.06.2000г.
Далее, вводим количество фамилий и год. Например, 2, 1998. Нажимаем на кнопку, и в Memo2 выводится список состоящий из 2х человек и их данных, поставленных на учет в 1998 году.

Как это сделать? Помогите пожалуйста кодом или пинком в нужную сторону.
Загрузку, сохранение, я реализовал:
Код:
Type
Tzap = record
    size:integer;
    fio: string[255];
    date:string[255];
end;

var
  Form1: TForm1;
  FileNameZ: string;
  Fz: file of  Tzap;
  zap: array[1..100] of Tzap;
  x:integer;  

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  x := 0;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
{$IOChecks off}
 if OpenDialog1.Execute then
   begin
    FileNameZ:= OpenDialog1.FileName;
    AssignFile(Fz, FileNameZ);
    Reset(Fz);
   end;
   x:=0;
   if IOResult=0 then
    begin
      while not eof(Fz) do
        begin
          x:=x+1;
          Read(Fz,zap[x]);
          with zap[x] do
            Memo1.Lines.Add(IntToStr(x) + '. ' + 'ФИО: ' + fio + #13#10
                            + '    Размер: ' + intToStr(size) + #13#10
                            + '    Поставлен на учет:  ' + date + 'г.' );

        end;
    end;
 end;

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
  if SaveDialog1.Execute then
    begin
      FileNameZ:= SaveDialog1.FileName;
      AssignFile(Fz, FileNamez);
      rewrite(Fz);
    end;
  for i:=1 to x do
    with zap[i] do
      begin
         write(Fz, zap[i]);
      end;
  CloseFile(Fz);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
x:=x+1;
  with zap[x] do
    begin
      size := StrToInt(Edit2.text);
      date := Edit3.text;
      fio := Edit1.text;
            Memo1.Lines.Add(IntToStr(x) + '. ' + 'ФИО: ' + fio + #13#10
                            + '    Размер: ' + intToStr(size) + #13#10
                            + '    Поставлен на учет:  ' + date + 'г.' );
    end;
    Write(Fz,zap[x]);
    Edit1.Clear;
    Edit2.Clear;
    Edit3.Clear;
end;
rager06 вне форума Ответить с цитированием
Старый 21.05.2011, 19:54   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Если у тебя есть массив записей, то и осуществляй по нему поиск. И не зачем обращаться на первый Мемо.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 21.05.2011, 19:54   #3
VadikV
Форумчанин
 
Аватар для VadikV
 
Регистрация: 08.01.2011
Сообщений: 226
По умолчанию

Зачем тебе анализировать строки в Memo1? У тебя есть массив записей всех структур zap[x]. Вот в цикле пробежись по нему и удовлетворяющие записи выведи в Memo2.
icq 223-630-454
e-mail vysotskiy@list.ru
сайт http://www.big-library.net/
VadikV вне форума Ответить с цитированием
Старый 21.05.2011, 19:58   #4
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Какой формат файла?
ReportCube вне форума Ответить с цитированием
Старый 21.05.2011, 20:07   #5
rager06
Пользователь
 
Регистрация: 08.09.2010
Сообщений: 17
По умолчанию

Цитата:
Сообщение от ReportCube Посмотреть сообщение
Какой формат файла?
Да без разницы, в принципе.. Бесформатный файл
rager06 вне форума Ответить с цитированием
Старый 31.05.2011, 18:38   #6
rager06
Пользователь
 
Регистрация: 08.09.2010
Сообщений: 17
По умолчанию

Цитата:
Сообщение от VadikV Посмотреть сообщение
Зачем тебе анализировать строки в Memo1? У тебя есть массив записей всех структур zap[x]. Вот в цикле пробежись по нему и удовлетворяющие записи выведи в Memo2.
Не получается ничего не могли бы Вы пару строчек кода кинуть?
rager06 вне форума Ответить с цитированием
Старый 31.05.2011, 18:55   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
nn:=0; /.считаем число отобранных (выведенных в Муьщ2)
for j:=0 to length(zap)-1 do begin
  if copy(zap[j].date,7,4) //считаем что дата записана так 31.04.2001
///при необходимости проставить нужные индексы(позиции)
                                   ='2011' then begin 
    // добавляем в Memo2 lданные из zap[j]
    nn=nn+1;
    if nn=2 then break;
  end;    
end;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 31.05.2011 в 18:59.
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический перенос строк из одного листа в другой dom_sveta Microsoft Office Excel 13 09.04.2020 20:04
При условии перенос строк из одного листа в другой Ilya_L Microsoft Office Excel 5 19.06.2010 06:15
Копирование к строк из одного файла в другой A_Orlov Помощь студентам 1 15.06.2010 14:49
Проблема переноса строк из одного списка (Listbox) в другой. hip3r Win Api 4 13.10.2009 11:59
Сортировка в StringGrid'е, копирование строк из одного SG в другой monushka Помощь студентам 3 29.10.2007 23:54