Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
1 / 1 / 2
Регистрация: 17.02.2011
Сообщений: 85

Выполнять действие при условии, что в текстовом файле появилась новая строка.

17.02.2011, 22:14. Показов 3064. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Операция должна быть циклической, т.е должна быть постоянная проверка наличия новой строки. Действие будет клик на кнопку.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2011, 22:14
Ответы с готовыми решениями:

В текстовом файле найти строку с наибольшим количеством символов (считать, что такая строка в файле одна)
Всем привет)) В текстовом файле найти строку с наибольшим количеством символов (считать, что такая строка в файле одна).

Выполнить код, если в базе появилась новая строка
Добрый день, вот делаю скрипт для себя - что то типо онлайн чата. Нужно сделать так...если в базе text появилась новая строка тогда...

Обработка xml-файла при условии, что в нем содержится определенная строка
Всем привет. Работаю с xml. Создаю и заполняю xml так: writer.Formatting = Formatting.Indented; ...

15
Шаровик затейник
 Аватар для Crudelis
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
17.02.2011, 22:48
ну так в действии клик на кнопке и проводите проверку строки
0
1 / 1 / 2
Регистрация: 17.02.2011
Сообщений: 85
17.02.2011, 23:52  [ТС]
Цитата Сообщение от Crudelis Посмотреть сообщение
ну так в действии клик на кнопке и проводите проверку строки


Объясните как сделать проверку строки??? Я думаю воспользоваться таймером, чтоб он каждые 5 секунд проверял.
0
 Аватар для servitola
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
18.02.2011, 08:21
reno777, возможно лучше стоит проверять размер файла или дату последнего изменения )
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
18.02.2011, 09:12
В программах на С под *NIX для таких задач можно использовать неблокирующий ввод из файла и проверку доступности данных с помощью select(), poll()... Как-нибудь что-то подобное должно бы и в C# присутствовать, только названия длиньше и параметры страшнее
0
 Аватар для servitola
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
18.02.2011, 09:18
reno777, http://msdn.microsoft.com/en-u... etime.aspx
1
1 / 1 / 2
Регистрация: 17.02.2011
Сообщений: 85
18.02.2011, 10:11  [ТС]
Как сделать, что при условии "Новая дата" выполняется действие?
0
 Аватар для servitola
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
18.02.2011, 10:37
reno777, http://msdn.microsoft.com/ru-r... tcher.aspx

есть вот такая штука )) кажется должно работать ))
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
18.02.2011, 12:26
servitola, это всё, конечно, интересно, спасибо! Осталось придумать, как из файла последнюю строку получать. Не перечитывать же его весь каждый раз... Можно, конечно, работать с файлом, как с массивом байтов (не помню, как точно в терминологии C# это называется), запоминать смещение, открывать файл каждый раз после отслеженного изменения, перемещаться в нём на нужную позицию, читать от неё и до конца, а потом преобразовывать прочитанное в строку, но как-то это всё громоздко получается... Хотя, думаю, окончательное решение должно зависить от того, за каким количеством файлов нужно следить и как часто в них будут новые строки появляться.
0
1 / 1 / 0
Регистрация: 28.11.2009
Сообщений: 23
18.02.2011, 13:01
Цитата Сообщение от reno777 Посмотреть сообщение
Операция должна быть циклической, т.е должна быть постоянная проверка наличия новой строки. Действие будет клик на кнопку.
создай файлвочер .
проверяй на изменение в файле.
если файл изменилcя -> действие.
если ты уверен, что любое изменение файла = появление новой строки, то читать сам файл во время слежения за ним методом файлвочер, не обязательно.
0
 Аватар для servitola
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
18.02.2011, 13:17
Будет ли считываться заранее весь файл при обращении к нему через stream?

C#
1
2
3
4
using( Stream stream = File.Open(fileName, FileMode.Open) )
{
 
}
0
1 / 1 / 2
Регистрация: 17.02.2011
Сообщений: 85
18.02.2011, 13:43  [ТС]
Последнюю строку выдирать не надо, надо чтоб при ее появлении выполнялось действие клик.

Добавлено через 4 минуты
Цитата Сообщение от ShamanK Посмотреть сообщение
создай файлвочер .
проверяй на изменение в файле.
если файл изменилcя -> действие.
если ты уверен, что любое изменение файла = появление новой строки, то читать сам файл во время слежения за ним методом файлвочер, не обязательно.
Я новичек. Какими командами добиться постоянного слежения за ним и при изменении файла выполнить действие.

Добавлено через 2 минуты
Цитата Сообщение от servitola Посмотреть сообщение
Будет ли считываться заранее весь файл при обращении к нему через stream?

C#
1
2
3
4
using( Stream stream = File.Open(fileName, FileMode.Open) )
{
 
}
С чтением проблем нет, теперь надо это автоматизировать, чтоб при условии появления строки выполнялось действие, а именно клик на кнопку.
0
 Аватар для servitola
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
18.02.2011, 13:46
reno777, http://www.sitedev.com/source/... atcher.asp
один в один то, что тебе нужно ))

А про чтение - мы тут рассуждали как бы считывать только то, что нужно, а не весь файл.
0
1 / 1 / 0
Регистрация: 28.11.2009
Сообщений: 23
18.02.2011, 15:18
Цитата Сообщение от reno777 Посмотреть сообщение
Последнюю строку выдирать не надо, надо чтоб при ее появлении выполнялось действие клик.

Добавлено через 4 минуты


Я новичек. Какими командами добиться постоянного слежения за ним и при изменении файла выполнить действие.

Добавлено через 2 минуты


С чтением проблем нет, теперь надо это автоматизировать, чтоб при условии появления строки выполнялось действие, а именно клик на кнопку.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
            #region ВОЧЕР 
 
            var watcher = new FileSystemWatcher("путь к файлу", "файл")
            {
                NotifyFilter = NotifyFilters.LastWrite,
                EnableRaisingEvents = true
            };
            watcher.Changed += OnChangedInFile;
 
            #endregion
 
           #region Обработчик
 
            public void OnChangedInFile(object source, FileSystemEventArgs e)
            {
                   // СОБЫТИЕ
                   //...
            }
 
           #endregion
Вочер следит за файлом, как только в файле что то было записано, создается событие для дальнейшей обработки
в обработчике события пишешь все что тебе нужно.
1
3 / 3 / 0
Регистрация: 16.02.2011
Сообщений: 6
18.02.2011, 16:46
Позволь немного тебя поправить:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
            #region ВОЧЕР 
 
            var watcher = new FileSystemWatcher("путь к файлу", "файл")
            {
                NotifyFilter = NotifyFilters.LastWrite,
                EnableRaisingEvents = true
            };
            watcher.Changed += OnChangedInFile;     <--- перед точкой с запятой нужно добавить ещё (null , null). Ведь "OnChangedInFile" - процедура нажатия кнопки как я понял
 
            #endregion
 
           #region Обработчик
 
            public void OnChangedInFile(object source, FileSystemEventArgs e)
            {
                   // СОБЫТИЕ
                   //...
            }
 
           #endregion
0
1 / 1 / 2
Регистрация: 17.02.2011
Сообщений: 85
18.02.2011, 21:36  [ТС]
Цитата Сообщение от ShamanK Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
            #region ВОЧЕР 
 
            var watcher = new FileSystemWatcher("путь к файлу", "файл")
            {
                NotifyFilter = NotifyFilters.LastWrite,
                EnableRaisingEvents = true
            };
            watcher.Changed += OnChangedInFile;
 
            #endregion
 
           #region Обработчик
 
            public void OnChangedInFile(object source, FileSystemEventArgs e)
            {
                   // СОБЫТИЕ
                   //...
            }
 
           #endregion
Вочер следит за файлом, как только в файле что то было записано, создается событие для дальнейшей обработки
в обработчике события пишешь все что тебе нужно.

В обработчике событий пишу sendButton.PerformClick();
Он мне выдает ошибку :Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "sendButton" не из того потока, в котором он был создан.
КАК С ЭТИМ БОРОТЬСЯ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.02.2011, 21:36
Помогаю со студенческими работами здесь

Insert из файла txt при условии что строк в файле очень много
Добрый день, подскажите как сделать insert текста из файла txt в поле varchar(2500). файл может быть очень большой. файл примерно такой: ...

Как не выполнять действия при определенном условии?
программа работает нормально, проблема только в одном при выводе сообщения &quot;неправильно введено значение&quot;, она еще выводит сообщения...

Появилась новая схема мошенничества при продаже процессоров!
Внимание всем, кто собирается сделать апгрейд своему компьютеру! Появилась новая схема мошенничества при продаже процессоров! Как...

Нужно остановить выполнять код при условии [Подробнее]
#include &lt;iostream&gt; using namespace std; int main() { int n; cin&gt;&gt;n; int e; for(int i=1;i&lt;=n;i++) cin&gt;&gt;e; int a,b,c; ...

Выполнять действие при вводе определенных символов в Edit
Здравствуйте. Суть вопроса вот в чем: При написании калькулятора, хочется что бы нажатие клавиши &quot;+&quot; программа воспринимала...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru