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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2008, 20:19   #1
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
Плохо Создание проги, которая выдает данные из файла

Здравствуйте, у меня такой вопрос: есть файл statistic.txt
там содержится такая информация:
[14:35:42] Ученик Rus из 11 класса вошёл.
[14:35:48] Ученик Rus из 11 класса ошибся в задании 1.

Нужно, чтобы прога считывала информацию из этого файла каждые 5 секунд и писала в лабел новые строки- (информация в него добавляется в режиме он-лайн {ученики выполняют задания, по локальной сети отсылаются такие сообщения и сохраняются })
Буду использовать таймер, как добавлять именно НОВЫЕ строки в лабел (создавать массив что ли ), или можете предложить лучший способ, чтобы учительница видела, что сделали ученики В ДАННЫЙ МОМЕНТ!
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Старый 07.09.2008, 20:59   #2
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Будут ли с самим файлом происходить какие-либо изменения? Кроме, разумеется, добавления новых строк).
Например, будет ли он очищаться при достижении опр. размера?
И почему надо использовать именно Label?

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  memo1.Clear;
  memo1.Color := clBtnFace;
  memo1.BorderStyle := bsNone;
  memo1.ReadOnly := true;
  memo1.Font.Style := [fsBold];
  memo2.Visible := false;
  memo2.Clear;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  sl: TstringList;
  i: integer;
begin
  sl := TStringList.Create;
  sl.LoadFromFile('statistic.txt');
  if (memo2.Lines.Count = 0) and (sl.Count > 0) then
  begin
    memo2.Lines.Add(sl[0]);
    memo1.Lines.Add(sl[0]);
    for i := memo2.Lines.Count to sl.count-1 do
    begin
      memo1.Lines.Add(sl[i]);
      memo2.Lines.Add(sl[i]);
    end;
  end
  else begin
  if (memo2.lines.count < sl.count) then
  begin
    memo1.Clear;
    for i := memo2.Lines.Count to sl.count - 1 do
    begin
      memo1.Lines.Add(sl[i]);
      memo2.Lines.Add(sl[i]);
    end;
  end;
  end;
  sl.Free;
end;
Используется Memo...Просто кинь их две штуки на форму.

P.S. проблемы могут возникнуть, если кто-нибудь во время считывания инфы из файла ( sl.LoadFromFile('statistic.txt')) попытается его открыть для записи либо же кто-то не успеет его зыкрыть при этом же действии.

Последний раз редактировалось NikLik; 07.09.2008 в 21:39.
NikLik вне форума Ответить с цитированием
Старый 07.09.2008, 21:28   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

А просто грузить файл например в ListBox не канает чтоли?
FaTaL вне форума Ответить с цитированием
Старый 07.09.2008, 21:53   #4
Rusl92
Форумчанин
 
Аватар для Rusl92
 
Регистрация: 30.03.2008
Сообщений: 392
По умолчанию

да, просто гружу в листбокс!
Программирование - это великое искусство... Такое же как например и живопись!
Rusl92 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание проги для убийства Винды MedBraT Windows 25 15.12.2008 02:05
Два XL файла, данные 1-го файла являются частью другого в формуле 2-го Кот Microsoft Office Excel 2 14.08.2007 16:56
Создание авто- загрузочной проги Gaist Общие вопросы Delphi 3 13.06.2007 13:09
как считать данные с Txt файла? Alar Общие вопросы Delphi 0 29.10.2006 20:12