С как проверить пустой ли файл
Вот у меня код (это Я делаю задания по РНР что на этом сайте):
$filename = «data.txt»;
if (file_exists($filename)) $file = fopen($filename, «r»);
$array = file($filename);
$year = $array[0];
$month = $array[1];
$day = $array[2];
$hour = $array[3];
$minute = $array[4];
>
else $today = getdate();
$year = $today[year];
$month = $today[mon];
$day = $today[mday];
$hour = $today[hours];
$minute = $today[minutes];
?>
Тобишь если файл существует, то мы загоняем его строки в массив, а если нет, то другое.
А мне нужно, так что если файл существует, то загоняем строки в массив, в если его нет или он пустой, то тогда выполняется это другое.
Подскажите пож-ста какой функцией воспользоваться для проверки файла.
автор: cheops (03.04.2006 в 23:36) письмо автору
Можно проверить размер файла при помощи функции filesize() — если она вернёт 0 — файл пустой.
автор: АКУЛА (04.04.2006 в 09:31) письмо автору
О, это идея.
Спасибо
автор: АКУЛА (04.04.2006 в 16:44) письмо автору
Вопрос:
а как правильно использовать функцию filesize
вот у меня
elseif (filesize($filename) .
>
?
автор: cheops (04.04.2006 в 22:43) письмо автору
А что не нравится в приведённом коде?
автор: ZetRider (04.04.2006 в 22:47) письмо автору
0 ) else ?> |
автор: cheops (04.04.2006 в 22:56) письмо автору
Всё верно, никакой крамолы не наблюдается.
автор: АКУЛА (05.04.2006 в 09:31) письмо автору
у меня вот так и всё равно не работет:
Введите дату и время
$filename = «data.txt»;
if (file_exists($filename)) $file = fopen($filename, «r»);
$array = file($filename);
$year = htmlspecialchars($array[0]);
$month = htmlspecialchars($array[1]);
$day = htmlspecialchars($array[2]);
$hour = htmlspecialchars($array[3]);
$minute = htmlspecialchars($array[4]);
>
elseif (filesize($filename) == 0) $today = getdate();
$year = $today[year];
$month = $today[mon];
$day = $today[mday];
$hour = $today[hours];
$minute = $today[minutes];
>
else $today = getdate();
$year = $today[year];
$month = $today[mon];
$day = $today[mday];
$hour = $today[hours];
$minute = $today[minutes];
>
?>
автор: АКУЛА (05.04.2006 в 10:40) письмо автору
Всё, разобрался.
Там неправильная конструкция (вернее не по логике было)
Спасибо за помощь 🙂
Проверка на пустоту файла С++
Помогите реализовать проверку на наличие файла и его пустоту. Если файл не открывается, вывести ошибку, если открывается, то проверить есть ли в нем данные.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Проверка файла на пустоту
Здравствуйте, нужно сделать проверку на пустоту, если файл пуст то идет одна ветка,если не пуст.
Проверка файла на пустоту
Как проверить файл на наличие в нем текста?
Проверка файла на пустоту
void Add_New_User() < FILE *Fptr = fopen("New_User.txt", "r"); if ((Fptr =.
88 / 88 / 80
Регистрация: 25.08.2013
Сообщений: 337
Сообщение было отмечено KaTRiNA13 как решение
Решение
1 2 3
fstream file("file.txt"); if (!file.is_open()) cout "Not open\n"; // если не открылся else if (file.peek() == EOF) cout "Fail empty\n"; // если первый символ конец файла
.peek() смотрит, но не извлекает.
Регистрация: 02.03.2016
Сообщений: 37
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#include #include using namespace std; int main() { const char filename[] = "1.txt"; FILE* f = fopen(filename, "rb"); if(!f) { cout "File is not exists" endl; return 0; } char a; size_t readed = fread(&a, 1, 1, f); if(readed) cout "File contains data" endl; else cout "File NOT contains data" endl; return 0; }
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
проверка на пустоту файла.
суть в чем.у меня если в файле записана хоть одна цифра программа работает.если же файл пустой т.е.
Проверка файла на пустоту
Помогите, пожалуйста. Как правильно проверить файл на пустоту (т.е. в файле нет абсолютно ничего).
Проверка файла на пустоту
как проверить пуст ли файл с которого я считываю данные.
Проверка файла на пустоту
очень важный для меня вопрос. как проверить файл на пустоту. мне нужно будет если файл выполнять.
Чтение и запись из файла, проверка файла на пустоту
В общем написал код который использует сессии и массивы, не могу понять как переделать так что бы.
Проверка текстового файла на пустоту
В случае, когда файл пуст, программа всё равно не считает его пустым. Почему это происходит? Как.
Как проверить не пустой ли файл?
Есть модуль под node.js, называется fs.
Задача такая: мне нужно проверять наличие содержимого файла и при определенных условиях что-то уже с этим файлом делать.
Ну т.е. ЕСЛИ файл пустой, то удаляем его, например.
Либо я не внимателен, либо проблемы с восприятием каких-то методов этого модуля. Как выполнить такую проверку? Если есть аналоги более интересных аналогов, то посоветуйте.
- Вопрос задан более трёх лет назад
- 990 просмотров
Комментировать
Решения вопроса 1
const stat = fs.statSync('./path/to/file'); console.log(stat.size);
Проверка файла на пустоту С++
Решаю задачу на определение симметричности массива, ну или является ли полиндромом,иначе говоря. Если симметрична, то вывожу 1, иначе 0. В файле сначала вводится кол-во элементов массива,а потом только последовательность чисел. Проблема в том, что никак не получается корректно проверить файл на пустоту. Если файл полностью пустой — вывести 0. Я использовал и if(!(fin >> number)) fout << 0; и if(fin.tellg() == 0) и другие.
Но ответ в таком случае выводит неккоректно. Даже если ввел симметричную последовательность чисел в файл, выводит 0. Посоветуйте что-то еще.<>
#include #include using namespace std; bool symmetry(int array[], int begin, int end)< < return (begin >= end) || ((array[begin] == array[end]) && (symmetry(array, begin + 1, end - 1))); > return 0; > int main()< ifstream fin("input.txt"); ofstream fout("output.txt"); int number, count = 0, size, a = 0; if(!(fin >> number)) //проверка на пустоту while(fin >> number) fin.clear(); fin.seekg(0, ios::beg); fin >> number; size = number; int array[size]; if (size == 0) if(size > number; array[count++] = number;> > else< for(int i = 0; i < a-1; i++) > number; array[count++] = number;> > for(int i = 0; i < count; i++)if(symmetry(array, 0, count-1) == true) fout
Отслеживать
задан 21 сен 2022 в 8:17
305 3 3 серебряных знака 12 12 бронзовых знаков
Никак не пойму, где в коде увы пытаетесь проверить файл на пустоту? И что такое пустота? Если в нем, например, одни пробелы или пустые строки, но нет чисел — это пустота?
21 сен 2022 в 8:46
Щас подправлю, а пустой имеется ввиду когда ничего нет в файле. @Harry
21 сен 2022 в 9:45
Ну и что не так? Если файла нет или в нем нет числа - создается output.txt с 0 внутри. А вы что хотите?
21 сен 2022 в 10:08
Ну так он всегда выводит 0. А это мне не нужно. Я хочу чтобы все было корректно. А именно, если я ввел симметрическую последовательность 4 1 2 2 1 (4 - это длин последовательности чисел,т.е 1 2 2 1), то он должен выдать 1, если он не симметричный, выдаст 0. А если файл пустой - выдает 0. Но сейчас он работает не так - он всегда выводит 0. А почему, мне вот это интересно. Как сделать так,чтобы было корректно
21 сен 2022 в 11:20
Да сами посмотрите, вы же как минимум одно число не дочитываете. Грубо говоря, в файле 1 2 3 2 1 , а в массиве 1 2 3 2 .