powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что делает программа
6 сообщений из 6, страница 1 из 1
Что делает программа
    #35593889
Фотография Xharm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто понимает подпишите к каждой строчке что она делает/значит в программе...
uses BaseUnix;
var
dir : PDir;
f: Pdirent;
info : stat;

begin
Dir:=fpopendir<'./.'>;
repeat
f:=fpreaddir<dir^>;
if f <> nil then with f^ do
begin
fpstat<pchar<@d_name[0]>,info>;
write<pchar<@d_name[0]>,' '>;
if fps_isdir<info.st_mode> then writeln<'catalog'>
else writeln<'file ',info.st_mtime>;
end;
until f = nil;
readln;
end.
...
Рейтинг: 0 / 0
Что делает программа
    #35594466
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже ничего.
Судя по всему - вывод списка каталога в виде файл-время.
Вот только еще бы исходнички модуля BaseUnix...

А так - использование *nix для работы с файловой системой через сторонний модуль -
{бред в сисю пьяного паскалевского программиста}. Это комментарий, кто не понял :)
...
Рейтинг: 0 / 0
Что делает программа
    #35595465
zloy den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XharmКто понимает подпишите к каждой строчке что она делает/значит в программе...


Было бы нефигово заменить угловые скобки на круглые. Автору может и полечать после этого
...
Рейтинг: 0 / 0
Что делает программа
    #35599609
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloy denXharmКто понимает подпишите к каждой строчке что она делает/значит в программе...


Было бы нефигово заменить угловые скобки на круглые. Автору может и полечать после этого
А я врубался, что за язык такой.... бегин и енды вроде, а с квадратными скопками)

XharmКто понимает подпишите к каждой строчке что она делает/значит в программе...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
uses BaseUnix; 
var
dir : PDir;
f: Pdirent;
info : stat;

begin
Dir:=fpopendir('./.'); /* открываем папку текушую, и кидаем Dir идентификатор на нее */
repeat /* повторяем пока */
 f:=fpreaddir(dir^); /* считываем то что находиться в директории и присваиваем f */
  if f <> nil then with f^ do /* пока нам предыдушая стркао что то возрашала то делаем с ?адресом? f такие делы: */
   begin
   fpstat(pchar(@d_name[ 0 ]),info);         /* тута както получаеться инфа и аноситься в info (не факт) */
   write(pchar(@d_name[ 0 ]),'      ');
   if fps_isdir(info.st_mode) then /* если текушая ссылка это каталог то*/
      writeln('catalog') /* пишем что это каталог?? А его имя не нуна? */
    else 
       writeln('file      ',info.st_mtime); /* выводиться то что это файл а так же его время ??создания?? */
  end;
until f = nil; /* тута глюк, нафига два раз проверять нормальный ли f? */
readln; /* на новую строку переходим */
end.
...
Рейтинг: 0 / 0
Что делает программа
    #35599727
zumTeufel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot]
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
uses BaseUnix; 
 01  repeat /* повторяем пока */
 02  f:=fpreaddir(dir^); /* считываем то что находиться в директории и присваиваем f */
 03   if f <> nil then with f^ do /* пока нам предыдушая стркао что то возрашала то делаем с ?адресом? f такие делы: */
 04   begin
    ...
 05   end;
 06  until f = nil; /* тута глюк, нафига два раз проверять нормальный ли f? */
 07  readln; /* на новую строку переходим */
 08  end.
[/quot]

Все так, кроме:
06 - тут все нормально (наверное). Поалагаю, Вы предполагаете, глюк в том, что не использована конструкция вида:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 01  repeat /* повторяем пока */
 02  f:=fpreaddir(dir^); /* считываем то что находиться в директории и присваиваем f */
 03   if f <> nil then with f^ do /* пока нам предыдушая стркао что то возрашала то делаем с ?адресом? f такие делы: */
 04   begin
   ...
 05  end
   else Break; /* А тут мы выходим*/
 06  until false; /*"вечный" цикл, т.к. выход из него выше*/
...

Вообщем, наверное, не глюк, я просто нежелание использовать Break и фразочки типа "until False", т.к. встретив такое, сразу приходится искать в теле цикла правило выхода из него, в то время, как "until f=nil" сразу говорит нам такое правило.

Код: plaintext
1.
 07  readln; /* на новую строку переходим */

Это, скорее, не переход на другую строку, а просто, т.к. программка наша отработала, вывела данные на экран, то отстанавливаемся и ждем, пока пользователь все прочтет и нажмет ENTER. Я, курсе на четвертом, консультировал одну барышню с "программисткого" факакльтета. Барышня написала программу в Турбо Паскале, запускала ее, но та "ничего не делает!". Оказалось, прорамма все делала, стрательно писала на экран, а затем сразу возвращалась в IDE Паскаля. Барышня не успевала заметить вывод на экран. (Конечно, ее проблему решил именно Readln;)
...
Рейтинг: 0 / 0
Что делает программа
    #35602106
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВообщем, наверное, не глюк, я просто нежелание использовать Break и фразочки типа "until False", т.к. встретив такое, сразу приходится искать в теле цикла правило выхода из него, в то время, как "until f=nil" сразу говорит нам такое правило.
Меня просто смушает что два раза за такт проверяли пустой ли один и тот же реультат. Да ладно, это бред человека в час ночи) Чет прикопаться захотелось)

зы. Я даже извинюсь: ИЗВИНЯЮСЬ)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Что делает программа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]