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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2010, 23:48   #11
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

переделал слегка-но явно нужно не так-а как тогда?

добавил на форму тимемо куда вводится конечная дата и мемо4 в которой уже находится осортированная инфа-нужно посчитать количество в днях и вывести в мемо4

Последний раз редактировалось west.by; 19.05.2010 в 23:52.
west.by вне форума Ответить с цитированием
Старый 19.05.2010, 23:50   #12
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

Код:

procedure TForm1.Button5Click(Sender: TObject);
var
k,m:string;
str1,str2: String;
DateTime1,DateTime2:TdateTime;
Days_: Integer;

begin   // Вывод информации о работниках с наибольшим стажем
Memo1.Clear; Memo2.Clear; Memo3.Clear;
Reset(f);
While Not EOF(f) Do
Begin
 Read(f,w);
 k:=strtofloat(memo3.text);
 m:=strtofloat(memo5.text);
 str1:='k'; //пример даты-время///
str2:='m';
DateTime1:= StrToDateTime(str1); //- переводит строку, типа 15.05.2010 в переменную типа TdateTime
DateTime2:= StrToDateTime(str2);
   if DateTime1>DateTime2  then ShowMessage(str1+' > '+str2)
 else
  if DateTime1<DateTime2  then ShowMessage(str1+' < '+str2)
  else ShowMessage(str1+' = '+str2);
end;
str1:='k';
str2:='m';
DateTime1:=StrToDate(str1);
DateTime2:=StrToDate(str2);//StrToDate(str2);
 

///рассчитываем количество дней между двумя датами///
  Days_:= DaysBetWeen(DateTime1,DateTime2);
 ShowMessage('между ними '+IntToStr(Days_)+' дней');

 {Расчитываем текущую дату}
 DateTime1:=Now;

 memo4.Lines.add(days_,ffixed,6,0)


end;

end.
west.by вне форума Ответить с цитированием
Старый 20.05.2010, 00:12   #13
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

чтоб посчитать разницу в днях надо всего лиш отнять одну дату от другой, и потом работать с остатком как с float а не как с датой

Код:
var
i:integer;
begin
//очищаем мемо2
memo2.lines.clear;
//тут цикл с 0 до количество линий в мемо-1
//отсчёт в Tstringlist идёт с 0
for I := 0 to Memo1.Lines.Count - 1 do
//в цикле отнимаем от текущей даты дату которая содержится в линии номер i
//memo1 остаток переводим из float в строку и добавляем 
//в мемо2 
memo2.Lines.Add(floattostr(date-strtodate(Memo1.Lines.Strings[i])))
end;
vovk вне форума Ответить с цитированием
Старый 20.05.2010, 00:23   #14
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

а если в мемо не одна запись? если из N то операци ядолжна повториься N Раз? если да-то как заставить компилятор провести несколько раз разницу и поместить соответсвенно не в окне всплывающем а в форму...?
west.by вне форума Ответить с цитированием
Старый 20.05.2010, 00:27   #15
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

для этого и существует цикл
Код:
I := 0 to Memo1.Lines.Count - 1 do
и результат помещаю в memo2.lines
Код:
memo2.Lines.Add(floattostr(date-strtodate(Memo1.Lines.Strings[i])))
эти вычисления происходят при каждом прохождении тела цикла i тут счётчик прохождений, тоесть каждое прохождение значение i увеличивается на 1 и соответственно
Memo1.Lines.Strings[i] каждое прохождение цикла берёт значение из следующей линии

Последний раз редактировалось vovk; 20.05.2010 в 00:31.
vovk вне форума Ответить с цитированием
Старый 20.05.2010, 00:49   #16
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

можно поподробнее про весь цикл
west.by вне форума Ответить с цитированием
Старый 20.05.2010, 01:16   #17
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

там всего 2 строчки остальное коментарий


Код:
for I := 0 to Memo1.Lines.Count - 1 do
memo2.Lines.Add(floattostr(date-strtodate(Memo1.Lines.Strings[i])))

Последний раз редактировалось vovk; 20.05.2010 в 01:19.
vovk вне форума Ответить с цитированием
Старый 20.05.2010, 01:27   #18
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

Код:
procedure TForm1.Button5Click(Sender: TObject);
var

i:integer;
begin
Memo1.Clear; Memo2.Clear;
Reset(f);

Begin
memo5.lines.clear;
for I := 0 to Memo3.Lines.Count - 1 do
Memo5.Lines.Add(floattostr(date-strtodate(Memo1.Lines.Strings[i])))
end;

end.

мемо5-там где должно все появиться
мемо4-одна дата
memo3-с новой строки много дат

и что-то не получается все рвавно...
west.by вне форума Ответить с цитированием
Старый 20.05.2010, 01:29   #19
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от west.by Посмотреть сообщение
Код:
procedure TForm1.Button5Click(Sender: TObject);
var

i:integer;
begin
Memo1.Clear; Memo2.Clear;
Reset(f);

Begin
memo5.lines.clear;
for I := 0 to Memo3.Lines.Count - 1 do
Memo5.Lines.Add(floattostr(date-strtodate(Memo1.Lines.Strings[i])))
end;

end.

мемо5-там где должно все появиться
мемо4-одна дата
memo3-с новой строки много дат

и что-то не получается все рвавно...
наверное всётаки Memo3 а не Memo1, выделил красным
vovk вне форума Ответить с цитированием
Старый 20.05.2010, 01:32   #20
west.by
Подтвердите свой е-майл
 
Регистрация: 16.05.2010
Сообщений: 54
По умолчанию

а семен семеныч... все понятно.спасибо.
west.by вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуется написать программу (ТЗ внутри) vxd Фриланс 9 18.04.2010 14:28
Исправить уже написанную программу Shiza321 Помощь студентам 1 27.01.2010 12:49
Помогите исправить программу... Lifefine Общие вопросы C/C++ 1 29.10.2009 11:32
Помоги исправить программу. Lifefine Общие вопросы C/C++ 3 19.10.2009 20:27
Помогите исправить программу kill301 Помощь студентам 1 01.06.2009 16:17