ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1931  
Старый 21.07.2008, 13:06
Аватар для De-visible
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

При запуске считай содержимое вайла в переменную, а затем по таймеру заноси содержимое файла в другую переменную и сравнивай...что сложного?
 
Ответить с цитированием

  #1932  
Старый 21.07.2008, 13:49
Аватар для Exile1985
Exile1985
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
Провел на форуме:
404152

Репутация: 94
По умолчанию

Цитата:
Сообщение от A_V  
Мне надо, чтобы переодически(по таймеру), проверять файл на предмет появления новых строк, если новая строка(или строки) появились - все это занести в переменную к примеру dogma
два TStringList (list1, list2) (по лучше с ним работать чем гемороитс с AssignFile readln и тд и тп), в первый загружаешь один раз файл,
во второй переодически файл перезагружаешь и по циклу сравниваешь строки
for i:=0 to list.count-1 do
begin
//где list1 "исходный" файл
if not (list1.string[i]=list2.string[i]) then
newstring:=newstring+list2.string[i];
//newstring твоя переменная с измененными строками
end;

Код:
var
  Form1: TForm1;
  num:integer;
  newstring:string;
  list:TStringList;

//при создании формы
procedure TForm1.........
begin
 list.create;
 list.LoadFromFile('c:\test.txt');
end;

//событие таймера
procedure TForm1.......
var
list2:TStringList;
i:integer;
begin
list2.create;
list2.loadFromfile('c:\test.txt');
for i:=0 to list1.count-1 do
begin
if not (list1.string[i]=list2.string[i]) then
newstring:=newstring+list2.string[i];
end;
end;

Последний раз редактировалось Exile1985; 21.07.2008 в 13:59..
 
Ответить с цитированием

  #1933  
Старый 21.07.2008, 14:45
Аватар для De-visible
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

Цитата:
Сообщение от Exile1985  
два TStringList (list1, list2) (по лучше с ним работать чем гемороитс с AssignFile readln и тд и тп), в первый загружаешь один раз файл,
во второй переодически файл перезагружаешь и по циклу сравниваешь строки
for i:=0 to list.count-1 do
begin
//где list1 "исходный" файл
if not (list1.string[i]=list2.string[i]) then
newstring:=newstring+list2.string[i];
//newstring твоя переменная с измененными строками
end;

Код:
var
  Form1: TForm1;
  num:integer;
  newstring:string;
  list:TStringList;

//при создании формы
procedure TForm1.........
begin
 list.create;
 list.LoadFromFile('c:\test.txt');
end;

//событие таймера
procedure TForm1.......
var
list2:TStringList;
i:integer;
begin
list2.create;
list2.loadFromfile('c:\test.txt');
for i:=0 to list1.count-1 do
begin
if not (list1.string[i]=list2.string[i]) then
newstring:=newstring+list2.string[i];
end;
end;
Не легчели просто для хранения данных использовать string'овые переменные?
их и сравнивать легче и цикл не какой не нужен...
 
Ответить с цитированием

  #1934  
Старый 21.07.2008, 15:00
Аватар для Exile1985
Exile1985
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
Провел на форуме:
404152

Репутация: 94
По умолчанию

Цитата:
Сообщение от De-visible  
Не легчели просто для хранения данных использовать string'овые переменные?
их и сравнивать легче и цикл не какой не нужен...
в смысле? я чтот не доконца что ты имеешь в виду
в цикле сравниваются сразу строки.
 
Ответить с цитированием

  #1935  
Старый 21.07.2008, 18:25
Аватар для De-visible
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

Цитата:
Сообщение от Exile1985  
в смысле? я чтот не доконца что ты имеешь в виду
в цикле сравниваются сразу строки.
нет это понятно, просто если стринговые переменные сделать там и цикл не нужен, и лишние переменные тоже ни к чему....
 
Ответить с цитированием

  #1936  
Старый 21.07.2008, 18:50
Аватар для dos999
dos999
Познающий
Регистрация: 15.02.2008
Сообщений: 98
Провел на форуме:
183980

Репутация: 50
По умолчанию

De-visible имеет в виду что у объектов типа TStringList есть свойство text и надо сравнивать именно эти совйства

if list1.text = list2.text then

и ф топку циклы =)
 
Ответить с цитированием

  #1937  
Старый 21.07.2008, 21:52
Аватар для Exile1985
Exile1985
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
Провел на форуме:
404152

Репутация: 94
По умолчанию

Цитата:
Сообщение от dos999  
De-visible имеет в виду что у объектов типа TStringList есть свойство text и надо сравнивать именно эти совйства

if list1.text = list2.text then

и ф топку циклы =)
ну дык задача то стоит какая..."....и при появлении новой строки автоматом занести ее в переменную?" (почему именно в стринговую переменную хз , ну автор сам знает ), а через text это никак не прокатить

Последний раз редактировалось Exile1985; 21.07.2008 в 21:56..
 
Ответить с цитированием

  #1938  
Старый 21.07.2008, 21:57
Аватар для De-visible
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

Цитата:
Сообщение от Exile1985  
ну дык задача то стоит какая..."....и при появлении новой строки автоматом занести ее в переменную?" (почему именно в стринговую переменную хз , ну автор сам знает ), а через text это никак не прокатить
если изменится какая либо строка тогда и файл изменится, поэтому мы просто заново скопируем его содержимое вот и все....
 
Ответить с цитированием

  #1939  
Старый 22.07.2008, 00:11
Аватар для A_V
A_V
Участник форума
Регистрация: 18.02.2008
Сообщений: 125
Провел на форуме:
562108

Репутация: 107
По умолчанию

спасибо что откликнулись у меня назрел такой вопрос а нельзя сделать так

AssignFile(f, 'C:\111.txt');
readln(f, nigma);
прошло минута
AssignFile(r, 'C:\111.txt');
readln(r, dogma);

if nigma<dogma then
begin
бла бла бла
end
else
begin
дла дла дла
end
 
Ответить с цитированием

  #1940  
Старый 22.07.2008, 00:28
Аватар для GROB_T
GROB_T
Участник форума
Регистрация: 03.03.2007
Сообщений: 135
Провел на форуме:
833374

Репутация: 124
По умолчанию

2a_v, твой код сравнит только первые строки файла
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/WPAN/WLAN 2564 06.04.2026 23:31
[ *NIX ] Задай вопрос - получи ответ. Xszz *nix 1547 15.06.2010 15:41
[jQuery] - Задай вопрос, получи ответ Isis PHP, PERL, MySQL, JavaScript 62 25.12.2009 03:25
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ