Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   проблема вывода атрибутов файлов (c++) (https://forum.antichat.xyz/showthread.php?t=37518)

gizmo 09.04.2007 01:53

проблема вывода атрибутов файлов (c++)
 
вот текст программы
Код:

#include <iostream.h>
#include <stdio.h>
#include <dir.h>
#include <conio.h>
#include <dos.h>
#include <string.h>
void search(char* a)
{  clrscr();
  struct find_t ffblk;
  int done;
  cout<<"Listing of"<<" "<<a;
  printf("\n");
  done = _dos_findfirst(a,FA_DIREC,&ffblk);
  while (!done)
  {
  printf("  %s\n",  ffblk.name);
  printf("  %s\n", ffblk.attrib);
  done = _dos_findnext(&ffblk);
  }
  }
  void main()
  {
  char* path_by_user;
  clrscr();
  scanf("%s", path_by_user);
  search(path_by_user);
  getch();
  }

Компилирую в Borland c++ 3.1
программа должна вывести список имен всех? файлов, директорий указанной директории и их атрибуты.
в реальности же получается
Код:

Listing of c:\*.*
Debug
- Copyright Borland // если Debug - директория
find.exe
- Borland Intl. // хз, мб во всех других случаях??
....
....


вопрос: почему не выводит аттрибуты в виде FA_DIREC
FA_NORMAL
FA_RDONLY
?
есть предположение, что у среды проблемы с нтфс - 3.1 версия компилятора вышла в 1991 году, о существовании нтфс даже догадываться не могли. (?)

Что вы думаете по этому вопросу?

_Great_ 09.04.2007 08:24

Цитата:

есть предположение, что у среды проблемы с нтфс - 3.1 версия компилятора вышла в 1991 году, о существовании нтфс даже догадываться не могли. (?)
Когда писали программы под Win 3.x, о существовании XP даже догадываться не могли. Однако, они работают. Есть такая вещь, как обратная совместимость.

Цитата:

вопрос: почему не выводит аттрибуты в виде FA_DIREC
а почему оно должно выводить число (атрибуты) в виде названий констант? хотя строки как у тебя не сильно лучше..

gizmo 09.04.2007 11:36

Цитата:

Сообщение от _Great_
Когда писали программы под Win 3.x, о существовании XP даже догадываться не могли. Однако, они работают. Есть такая вещь, как обратная совместимость.


а почему оно должно выводить число (атрибуты) в виде названий констант? хотя строки как у тебя не сильно лучше..

а в каком виде должен выводить?
почему выводит мусор?
почему скрытые файлы не видит вообще?
(кста, для папки и файла - мусор различный)

_Great_ 09.04.2007 22:47

Цитата:

Сообщение от gizmo
а в каком виде должен выводить?
почему выводит мусор?
почему скрытые файлы не видит вообще?
(кста, для папки и файла - мусор различный)

пора забыть про досовский поиск файлов и юзать FindFirstFile / FindNextFile (win32 api)

на дворе все-таки уже 21 век, а ты все с топором ходишь и "мабумба" кричишь :D

gizmo 09.04.2007 23:40

Я не просил советовать мне сменить среду программирования - если приходится писать в 3.1 - значит, так нужно. мог бы - сам на api перешел, но за участие все равно спасибо, Great.
Кста, кому интересно - я нашел, в чем была проблема.
Как я изначально и предположил, косяк в файловой системе.
с системой нтфс пахать _прямо_ данная прога не будет никогда. можно ее , конечно, довести, но это извращение, практически, метод подбора.
И дело вовсе не в обратной совместимости - когда производишь поиск в нтфс данными функциями в ffblk лезет всякое дерьмо,
о котором в 1991 году даже и не догадывались. (типа квот, разграничений по правам доступа, по владельцу)

в фс fat12 или fat16 все работает норм, в система fat 32 уже появляются косяки - изменено кол-во памяти, выделяемое под имя файла.

итог - не пытайтесь юзать такие проги в фс выше fat 32.


П.С. Смысла писать прогу, которая еще до своего рождения устарела не вижу. But I have to =(

_Great_ 09.04.2007 23:47

Цитата:

итог - не пытайтесь юзать такие проги в фс выше fat 32.
]
итог - выбрасывайте свой дос на 5дюймовых дискетках, на дворе 21 век))

gizmo 10.04.2007 00:08

ностальгия не гложет?
DiBa, 25020720.10
http://dump.ru/files/4/431084310/

кста, дискетки у меня 3,5"
новейшая технология. 1,44 мб, можно извратиться, 2+ МБ записать=)

_Great_ 10.04.2007 00:14

Цитата:

Сообщение от gizmo
ностальгия не гложет?

нед) мне както больше интересно реверсить ядро винды.. хотя я помню досенг :)

mov dx, offset heck
mov ah, 9
int 21h
int 20h
heck db 'MEGA XEK!!!!!',0dh,0ah,'$'

gizmo 24.04.2007 01:33

вкурил, уже почти как надо пашет


Время: 20:14