Найти все файлы с данным разрешением и вывести их имя и размер - Free Pascal

Узнай цену своей работы

Формулировка задачи:

эта программа работает и выдает правильный результат, если файлы *.jpg находятся в папке с программой(это мне понятно) идем далее...В папке с программой(папка называется "progi" есть еще одна папка "MyPictures" в ней собраны все файлы *.jpg вместо первого параметра if FindFirst('*.jpg'..... прописывал следующие пути 'MyPictures\*.jpg' , 'C:\progi\MyPictures\*.jpg' , результат никакой, т.е. прога эти файлы найти не может может есть у кого какие соображения
Листинг программы
  1. program AHelp;
  2. {$mode objfpc}{$H+}
  3. uses CRT,SysUtils;
  4. var
  5. srh: TSearchRec;
  6. begin ClrScr;
  7. if FindFirst('*.jpg',faAnyFile,Srh)=0 then begin
  8. repeat
  9. writeln('имя файла* = ',srh.Name);
  10. writeln('размер файла* = ',Srh.Size div 1024,' кбайт');
  11. until FindNext(Srh)<>0;
  12. FindClose(Srh);
  13. end;
  14. writeln('Click any key');
  15. readkey;
  16. end.

Решение задачи: «Найти все файлы с данным разрешением и вывести их имя и размер»

textual
Листинг программы
  1. uses SysUtils;
  2. var
  3.   sr: TSearchRec;
  4. begin
  5.   if FindFirst('MyPictures\*.jpg',faAnyFile,sr)=0 then with sr do begin
  6.     repeat
  7.       WriteLn(name,' ',size);
  8.     until FindNext(sr)<>0;
  9.     FindClose(sr);
  10.   end;
  11. end.

Объяснение кода листинга программы

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

  1. Объявляется переменная типа TSearchRec с именем sr, которая используется для хранения информации о найденном файле.
  2. Вызывается функция FindFirst, которая ищет первый файл с разрешением 'MyPictures*.jpg' в текущей директории. Параметр faAnyFile указывает, что нужно искать любой тип файла.
  3. Если поиск удался (то есть файл был найден), то начинается цикл, который повторяется до тех пор, пока не будет вызван метод FindNext, который ищет следующий файл с заданным разрешением.
  4. Внутри цикла выводится имя файла (поле Name объекта sr) и его размер (поле Size объекта sr) с помощью функции WriteLn.
  5. После окончания цикла вызывается метод FindClose, который освобождает ресурсы, занятые объектом sr.
  6. Если файл не был найден, то выводится сообщение об ошибке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы