Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не считывает данные из сетевого файла [D5, WinXP]


user51 ©   (2009-10-29 14:55:00) 

произвожу считываение файла из сетевого окружения
раз в секунду. Содержимое файла также меняется гдето раз в секунду.

if fileexists ('\\10.128.1.1\ping\ping.txt')  then
begin
assignfile(f,'\\10.128.1.1\ping\ping.txt');
reset(f);
       repeat
       readln(f,ff);
       until eof(f);
       closefile(f);
end

проблема в том что файл реально меняется
а программа считывает все время одно и тоже похоже из какогото виндового буфера. Если я тоталом открою файл
для просмотра то и программа сразу считает новое содержимое файла. как сделать чтоб считывалось реальное содержимое файла ?


user51   (2009-10-30 12:03:00) [1]

вобщем я все сделал - пару строчек добавил к коду.
А от ваших советов толку никакого - как впрочем и всегда. За всё время раза 4 спрашивал, то не знаете как сделать (в данном случае никто не знает как получить реальное содержимое файла) или вообще даете бесполезные советы которые я не могу использовать.

Интересно у кого нибудь мозгов хватит догадаться, что надо добавить  или что надо изменить чтоб приведенный выше код заработал ? или к моему ОФИГЕННО БОЛЬШОМУ УДИВЛЕНИЮ я окажусь самым умным из всех кто писал в этом посту.


brother   (2009-10-30 04:29:00) [2]

имхо, реализация вообще никакая...


brother   (2009-10-30 04:28:00) [3]

> А ты не читаешь то что требуется сделать!!!

O_o это кому надо то? ты к советам прислушивайся ;)


Dennis I. Komarov (htc)   (2009-10-29 22:53:00) [4]

очередной x, y, z...
но тут дело не в syslog
тут, понимаешь, винад во всем виновата.


Сергей М.   (2009-10-29 21:44:00) [5]


> user51   (29.10.09 17:44) [8]



> как на линуксе переправить вывод на syslog-сервер


Читай документацию.


> как сделать syslog-сервер под виндой


UDP, 514-й порт, текстовые сообщения.


user51   (2009-10-29 17:44:00) [6]

просто файл уже есть и я хочу прочто его получить.

Сергей М. твой вариант можно тоже рассмотреть подскажи тогда как на линуксе переправить вывод на syslog-сервер и как сделать syslog-сервер под виндой. И действительно ли  это проще чем найти комманду (точно такую же которую использует тотал ) и запускать ее перед считыванием


Сергей М.   (2009-10-29 17:23:00) [7]

Интересно, за каким лешим понадобилось кидать вывод консольной утилиты в файл, расшаривать его и потом на удаленном хосте пыжиться-ловить изменения в этом файле, вместо того чтобы перенаправить консольный вывод прямо на syslog-сервер на удаленном хосте ?


user51   (2009-10-29 16:33:00) [8]

А ты не читаешь то что требуется сделать !!!
тотал делает что то при просмотре файла после чего виндовс
думает ага мой буфер устарел, надо обратно дать всем прогам считать из файла а не из буфра в памяти. И моя прога сразу же считывает новое правильное содержание файла.

КТО ЗНАЕТ КАК ЗАСТАВИТЬ ВИНДУ ДАВАТЬ СЧИТЫВАТЬ ДАННЫЕ ИЗ ФАЙЛА
а не из буфера ?


Anatoly Podgoretsky   (2009-10-29 16:07:00) [9]

Ты ответы принципиально не читаешь.


user51   (2009-10-29 15:51:00) [10]

вопрос как заставить виндовс считать данные еще раз из файла на удаленном компьютере, а не из буфера в памяти того компьютера на котром запущена программа


user51   (2009-10-29 15:42:00) [11]

на линуксе создал расшаренную папку в ней ping.txt котрый постоянно меняется (под линуксом программа крутиться и пингует и результат сбрасывает в файл причем первая строчка это всрем  - поэтому легко поределить верно ли считыается или нет); Необходимо соединится их под ХП и пропарсить файл.

на моем компе - wmware (виртуальная машина LINUX с расшаренной папкой и файлом ping.txt) и эта прога. Все работает ОК.Считывается правильное содержимоое файла.

Беру эту прогу ставлю на комп под ХП  в этой сети есть настоящий линукс с расшаренной папкой и файлом ping.txt
Считывается толко первое значение. файл реально меняется. а считывается все равно старое значение. Беру в тотале нажимаю F3 на этом файле и сразу моя прога считыват новое значение.


Anatoly Podgoretsky   (2009-10-29 15:39:00) [12]


> user51   (29.10.09 14:55)  

Врядли тоталом читает с помощью данных функций, попробуй считывать с помощью АПИ, тем более что код разместил в этом разделе, а код не соответствует тематике форума. Как промежуточный шаг попробуй считывать с помощью TFileStream. Но забудь про работу со строками, и АПИ и TFileStream это низкоуровневые процедуры, единица БАЙТ.

К тому же приведеный код вообще не подходит для межпрограммной работы.


ПостОвый терминатор   (2009-10-29 15:28:00) [13]

Каким образом узнаешь (проверяешь), что программа по таймеру считывает одну и ту же информацию?
"Сетевой" файл похоже не причем.
Для начала попробуй уменьшить частоту опроса


Наверх

Титульная страница Поиск, карта сайта Написать письмо