Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93

Чтение новых строк из файла

01.12.2019, 15:27. Показов 2869. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Суть такова, есть файл, например file.txt, мне надо что бы из него скрипт проверял на новые строки.
----- file.txt -----
Строка 1
Строка 2
Строка 3
-------------------
Что мне надо?
Мне надо чтобы при запуске, выводилась пустота, а когда в файл запишется какая-то строка, то вывести её.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.12.2019, 15:27
Ответы с готовыми решениями:

Чтение файла с настройками и добавление новых, как сделать?
Есть файл программы с настройками Не могу понять, как читать и добавлять настройки в такой файл((

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

Чтение строк из файла
Спасибо всем за ответы на меё сообщение о чтении строк из файла... Все работает. Вот только еще не большой вопрос скажем кинул я эти 6...

21
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
01.12.2019, 15:51
Keller18306, зачем?
0
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93
01.12.2019, 15:52  [ТС]
Мне надо проверять log файл из одной игры xD
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
01.12.2019, 15:54
Keller18306, дак проверяйте записи по дате. В лог ведь пишется время последней записи.
0
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93
01.12.2019, 16:18  [ТС]
Неа, вот пример лога:
Damage Taken from "Pripíč Hazeus" - 101 in 3 hits
Player: Keller - Damage Given
-------------------------
Damage Given to "Pripíč Hazeus" - 45 in 3 hits
Player: Keller - Damage Taken
-------------------------
Damage Taken from "ANTIHACK ♥ ×ωħα†łȿλσᶌҿ×" - 161 in 3 hits
Tried to look up command say as if it were a variable.
Keller‎ : /q
На самом деле, я хочу сделать вывод урона в чат после убийства, мне просто надо получать новые строки "Damage Given to"

Добавлено через 21 минуту
Ну киньте просто как получать последние строки из файла?
У меня есть такой скрипт, но он при запуске выводит весь файл!
PHP
1
2
3
4
5
6
7
8
9
<?php
$filename = 'file.txt';
if ($stream = fopen($filename, 'a+')) {
    go:
    echo stream_get_contents($stream, -1);
    sleep(1);
    goto go;
}
?>
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
01.12.2019, 16:34
Keller18306, ну тогда вариант один: дублировать число строк лог-файла в отдельный файл. Набросал такой вариант
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$file = 'log.txt';
 
$counter = 'counter.txt';
$total = 0;
file_exists($counter) ?: file_put_contents($counter, $total);
 
$lines = file_exists($file) ? file($file, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES) : [];
$total = (int) file_get_contents($counter);
$numberOfLines = count($lines);
 
if ($numberOfLines > $total) {
    file_put_contents($counter, $numberOfLines);
    echo $lines[--$numberOfLines];
}
0
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93
01.12.2019, 16:48  [ТС]
Что-то не то, оно в консоль выводит 3
А в файл counter.txt число 13
А в log.txt у меня это:
1
2
3
4
5
6
7
1
2
444
4
3
3
0
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93
01.12.2019, 16:49  [ТС]
Вот фото
Миниатюры
Чтение новых строк из файла  
0
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93
01.12.2019, 16:51  [ТС]
А понял, оно выводит последнюю строчку, но оно при втором запуске ничего не выводит -_-
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
01.12.2019, 16:52
Keller18306, ну количество строк скрипт посчитал правильно, вам только осталось разобраться, почему вывод у вас не работает. Я на локалке тестировал скрипт, всё ок.

Добавлено через 15 секунд
Keller18306, ну да )
0
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93
01.12.2019, 16:57  [ТС]
А можно что-то сделать с моим кодом? Просто мне такой и нужен, мне только сделать, что бы при запуске не выводился весь файл, а только новые строки!
PHP
1
2
3
4
5
6
7
$filename = 'file.txt';
if ($stream = fopen($filename, 'a+')) {
    go:
    echo stream_get_contents($stream, -1);
    sleep(1);
    goto go;
}
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
01.12.2019, 17:07
Keller18306, я подправил скрипт, что бы при первом его запуске он не отображал ничего
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$file = 'log.txt';
$counter = 'counter.txt';
 
$lines = file_exists($file) ? file($file, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES) : [];
$numberOfLines = count($lines);
 
if (file_exists($counter)) {
    $total = (int) file_get_contents($counter);
} else {
    file_put_contents($counter, $numberOfLines);
    $total = $numberOfLines;
}
 
if ($numberOfLines > $total) {
    file_put_contents($counter, $numberOfLines);
    echo $lines[--$numberOfLines];
}


Добавлено через 20 секунд
Цитата Сообщение от Keller18306 Посмотреть сообщение
А можно что-то сделать с моим кодом?
А чем вас мой вариант не устроил?
0
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93
01.12.2019, 17:10  [ТС]
Мне кажется твой скрипт слишком... нагружаемый, хотя хз, я свой подправил, теперь он выводит только новые файлы, и мне нужно с циклом, а твой при цикле будет всегда открывать файл.
Миниатюры
Чтение новых строк из файла  
0
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93
01.12.2019, 17:12  [ТС]
Может быть делать скрипт для игры на PHP это извращение, но я пока ещё других языков не знаю, поэтому пока так.
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
01.12.2019, 17:22
Keller18306, вот вариант для вывода всех новых строк (а не только последней)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$file = 'log.txt';
$counter = 'counter.txt';
 
$lines = file_exists($file) ? file($file, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES) : [];
$numberOfLines = count($lines);
 
if (file_exists($counter)) {
    $total = (int) file_get_contents($counter);
} else {
    file_put_contents($counter, $numberOfLines);
    $total = $numberOfLines;
}
 
if ($numberOfLines > $total) {
    file_put_contents($counter, $numberOfLines);
    for ($i = $numberOfLines - 1; $i > $total; --$i) {
        echo $lines[$i] . PHP_EOL;
    }
}
Добавлено через 1 минуту
Цитата Сообщение от Keller18306 Посмотреть сообщение
мне нужно с циклом, а твой при цикле будет всегда открывать файл.
Я написал скрипт с циклом, но файл читается не в цикле - в цикле читается массив строк, и то только последние свежие его записи.

Добавлено через 1 минуту
Цитата Сообщение от Keller18306 Посмотреть сообщение
Мне кажется твой скрипт слишком... нагружаемый
Если лог-файл не достигает огромных размеров, то мой скрипт вполне справится с поставленной задачей )
0
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93
01.12.2019, 17:44  [ТС]
Ща протесчу, файл лога отчищается при запуске игры xD

Добавлено через 18 минут
Что-то не робит, выводит пустоту, хотя я добавил в файл строку -_-
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
01.12.2019, 18:25
Лучший ответ Сообщение было отмечено Keller18306 как решение

Решение

Keller18306, да, была не точность - вот исправленный вариант
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$file = 'log.txt';
$counter = 'counter.txt';
 
$lines = file_exists($file) ? file($file, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES) : [];
$numberOfLines = count($lines);
 
if (file_exists($counter)) {
    $total = (int) file_get_contents($counter);
} else {
    file_put_contents($counter, $numberOfLines);
    $total = $numberOfLines;
}
 
if ($numberOfLines > $total) {
    file_put_contents($counter, $numberOfLines);
    for ($i = $numberOfLines; $i > $total; --$i) {
        echo $lines[($i-1)] . PHP_EOL;
    }
}


Добавлено через 33 минуты
Keller18306, ну и ?
1
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93
01.12.2019, 18:45  [ТС]
Вроде как работает.
Но я сделал свою, спасибо за помощь.
Можешь помочь с preg_match?)
Это относится к этой теме.

Добавлено через 2 минуты
Вот смотри у меня есть такой текст
Damage Given to "Test" - 45 in 3 hits
и мне из него надо получить Test, 45, 3, но эти значения могут быть разными, Test может быть как текстом так и числами, а 45 и 3 могут быть любыми числами.
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
01.12.2019, 18:52
Цитата Сообщение от Keller18306 Посмотреть сообщение
Test может быть как текстом так и числами, а 45 и 3 могут быть любыми числами.
Было бы хорошо, если бы вы написали все возможные варианты строки Damage Given to "Test" - 45 in 3 hits. Тогда можно будет написать наиболее точный шаблон.
0
9 / 6 / 3
Регистрация: 02.05.2018
Сообщений: 93
01.12.2019, 18:57  [ТС]
Damage Given to "Test" - 0 in 10 hits
Damage Given to "Keller" - 666 in 15 hits
Damage Given to "top4ic" - 152 in 0 hits
Damage Given to "Very Good Player" - 18274 in 1218 hits
Damage Given to "XZ" - 28 in 13247 hits
Damage Given to "" - 112 in 12561 hits
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.12.2019, 18:57
Помогаю со студенческими работами здесь

Чтение строк из файла
Всем привет. Такой вопрос. У меня есть windows forms на С++ как из файла читать пробелы и переход на новую строку используя функцию Split()?

Чтение строк из файла
struct Questions { char quest; }QuestList; void main() { int numQuest=0; FILE *fp; fp = fopen(&quot;voprosy.txt&quot;,...

Чтение строк из файла
Добрый день! Подскажите как сделать вот это: сделать обработку, которая считывает входной файл. Читает каждую строку файла и раскладывает...

Чтение строк из файла
Мне нужно читать строки из фалйа разной длинны тоесть может быть вобще пустая строка. нужно именно c++ не c

Чтение строк из файла
Добрый день! Возник вопрос по работе с файлами, задача следующая - читать построчно файл, строки записывать в массив. Пытался сделать через...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru