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

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

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

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

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

textual
Листинг программы
uses SysUtils;
var
  sr: TSearchRec;
begin
  if FindFirst('MyPictures\*.jpg',faAnyFile,sr)=0 then with sr do begin
    repeat
      WriteLn(name,' ',size);
    until FindNext(sr)<>0;
    FindClose(sr);
  end;
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
Похожие ответы