Code: procedure TForm1.Timer1Timer(Sender: TObject); begin progressbar.Position := progressbar.Position + 1; if progressbar.Position > 40 then begin команда end; end;
Как прочитать файл построчно, и при появлении новой строки автоматом занести ее в переменную? Спасибо за помощь!
Уточни что именно хочешь. "появлении новой строки" - если добавиться еще строка или если какая либо из имеющихся изменится? "автоматом занести ее в переменную? " - т.е. прога при старте должна проверсять целостность файла и если он изменился уведомлять?
Мне надо, чтобы переодически(по таймеру), проверять файл на предмет появления новых строк, если новая строка(или строки) появились - все это занести в переменную к примеру dogma
При запуске считай содержимое вайла в переменную, а затем по таймеру заноси содержимое файла в другую переменную и сравнивай...что сложного?
два TStringList (list1, list2) (по лучше с ним работать чем гемороитс с AssignFile readln и тд и тп), в первый загружаешь один раз файл, во второй переодически файл перезагружаешь и по циклу сравниваешь строки for i:=0 to list.count-1 do begin //где list1 "исходный" файл if not (list1.string=list2.string) then newstring:=newstring+list2.string; //newstring твоя переменная с измененными строками end; Code: 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'овые переменные? их и сравнивать легче и цикл не какой не нужен...
нет это понятно, просто если стринговые переменные сделать там и цикл не нужен, и лишние переменные тоже ни к чему....
De-visible имеет в виду что у объектов типа TStringList есть свойство text и надо сравнивать именно эти совйства if list1.text = list2.text then и ф топку циклы =)
ну дык задача то стоит какая..."....и при появлении новой строки автоматом занести ее в переменную?" (почему именно в стринговую переменную хз , ну автор сам знает ), а через text это никак не прокатить
если изменится какая либо строка тогда и файл изменится, поэтому мы просто заново скопируем его содержимое вот и все....
спасибо что откликнулись у меня назрел такой вопрос а нельзя сделать так 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
угу A_V - придётся или хранить копию на харде и каждую минуту туда его загонять по новой, предварительно сравнив, или в память читать целиком
Нужна помощь=) Есть страница на которой скрипт принимает пост запрос, обрабатывает его и выплевывает тело страницы. Юзая TcpClient заголовок "200" принимается а cамо тело страницы нет =\ Code: procedure TForm2.Button1Click(Sender: TObject); var data:String; begin data:='POST /check_jhsdfk12498lk9284kjf8.php HTTP/1.1'+CRLF; data:=data+'Host: www.2proxylife.net'+CRLF+ 'Content-type: application/x-www-form-urlencoded'+CRLF+ 'User-Agent: PHP Script'+CRLF+ 'Connection: Keep-alive'+CRLF+ 'proxys=127.0.0.1:8080%0D%0A200.55.44.1.3:80%0D%0A150.200.0.6:8000&time=5'; TcpClient1.Open; TcpClient1.Sendln(data+CRLF+CRLF,''); Memo1.Text:=TcpClient1.Receiveln(CRLF+CRLF); Memo2.Text:=Utf8ToAnsi(TcpClient1.Receiveln('')); TcpClient1.Close; end; Заранее спасибо!=)
2 перевода строки перед постдатой, а длина постдаты считывается из Content-Length. Code: procedure TForm2.Button1Click(Sender: TObject); var data,postdata:String; begin postdata:='proxys=127.0.0.1:8080%0D%0A200.55.44.1.3:80%0D%0A150.200.0.6:8000&time=5'; data:='POST /check_jhsdfk12498lk9284kjf8.php HTTP/1.1'+CRLF+ 'Host: www.2proxylife.net'+CRLF+ 'Content-type: application/x-www-form-urlencoded'+CRLF+ 'Content-Length: '+inttostr(length(postdata))+CRLF+ 'User-Agent: PHP Script'+CRLF+ 'Connection: Keep-alive'+CRLF+CRLF+ postdata; TcpClient1.Open; TcpClient1.Sendln(data); Memo1.Text:=TcpClient1.Receiveln(CRLF+CRLF); Memo2.Text:=Utf8ToAnsi(TcpClient1.Receiveln('')); TcpClient1.Close; end;