С как проверить пустой ли файл
Перейти к содержимому

С как проверить пустой ли файл

  • автор:

С как проверить пустой ли файл

Вот у меня код (это Я делаю задания по РНР что на этом сайте):
$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

Omashu

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 .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *