Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 0 / 0
Регистрация: 17.11.2023
Сообщений: 26

Отображение FAT в Delphi 7

09.04.2024, 22:42. Показов 1624. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, подскажите, как можно отобразить кластеры FAT32 в элементе StringGrid в Delphi7 таким образом, чтобы номера их шли цепочкой, последовательно. Искал информацию в интернете, но так ничего и не обнаружил. Буду благодарен за какие - либо источники содержащие эту информацию
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.04.2024, 22:42
Ответы с готовыми решениями:

Файловые системы: FAT-16, FAT-32, NTFS и маленькие текстовые файлы.
Здравствуйте, форумчане:) есть такой вопрос: какое влияние оказывает выбор файловой системы (FAT 16, FAT 32, NTFS) для запоминания...

Программа востановления логической целостности диска с использованием копии FAT 32(или FAT 16)
тема звучит так: Программа востановления логической целостности диска с использованием копии FAT 32(или FAT 16) програма должна быть...

+ Delphi Отображение картинок из БД в Делфи
Имеется база данных Access в которой есть OLE поля с изображениями, при привязке этой БД к делфи они отображаются как BLOB поля, и при...

22
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
15.04.2024, 06:53
Студворк — интернет-сервис помощи студентам
сделаю еще откровение для нтфсы - вся дефрагментация сводится к винайпи типа вот это положи сдесь а вот это там. на уровне файлов.... главное знать что прочитать и куда записать. для первого мфт для другого битмап диска....
0
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
18.04.2024, 11:59
northener, Нащел таки исходник Jkdef и На тему почему тест на криворукость и жопоглазость.....

собственно описание данных

C++
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
#define MFTBUFFERSIZE 256 * 1024         /* 256 KB seems to be the optimum. */
 
 
 
struct INODE_REFERENCE {
  ULONG InodeNumberLowPart;
  USHORT InodeNumberHighPart;
  USHORT SequenceNumber;
  };
 
struct NTFS_RECORD_HEADER {
  ULONG Type;                   /* File type, for example 'FILE' */
  USHORT UsaOffset;             /* Offset to the Update Sequence Array */
  USHORT UsaCount;              /* Size in words of Update Sequence Array */
  USN Lsn;                      /* $LogFile Sequence Number (LSN) */
  };
struct FILE_RECORD_HEADER {
  struct NTFS_RECORD_HEADER RecHdr;
  USHORT SequenceNumber;        /* Sequence number */
  USHORT LinkCount;             /* Hard link count */
  USHORT AttributeOffset;       /* Offset to the first Attribute */
  USHORT Flags;                 /* Flags. bit 1 = in use, bit 2 = directory, bit 4 & 8 = unknown. */
  ULONG BytesInUse;             /* Real size of the FILE record */
  ULONG BytesAllocated;         /* Allocated size of the FILE record */
  INODE_REFERENCE BaseFileRecord;     /* File reference to the base FILE record */
  USHORT NextAttributeNumber;   /* Next Attribute Id */
  USHORT Padding;               /* Align to 4 UCHAR boundary (XP) */
  ULONG MFTRecordNumber;        /* Number of this MFT Record (XP) */
  USHORT UpdateSeqNum;          /*  */
  };
 
enum ATTRIBUTE_TYPE {
  AttributeInvalid              = 0x00,         /* Not defined by Windows */
  AttributeStandardInformation  = 0x10,
  AttributeAttributeList        = 0x20,
  AttributeFileName             = 0x30,
  AttributeObjectId             = 0x40,
  AttributeSecurityDescriptor   = 0x50,
  AttributeVolumeName           = 0x60,
  AttributeVolumeInformation    = 0x70,
  AttributeData                 = 0x80,
  AttributeIndexRoot            = 0x90,
  AttributeIndexAllocation      = 0xA0,
  AttributeBitmap               = 0xB0,
  AttributeReparsePoint         = 0xC0,         /* Reparse Point = Symbolic link */
  AttributeEAInformation        = 0xD0,
  AttributeEA                   = 0xE0,
  AttributePropertySet          = 0xF0,
  AttributeLoggedUtilityStream  = 0x100
  };
 
struct ATTRIBUTE {
  enum ATTRIBUTE_TYPE AttributeType;
  ULONG Length;
  BOOLEAN Nonresident;
  UCHAR NameLength;
  USHORT NameOffset;
  USHORT Flags;              /* 0x0001 = Compressed, 0x4000 = Encrypted, 0x8000 = Sparse */
  USHORT AttributeNumber;
  };
 
struct RESIDENT_ATTRIBUTE {
  struct ATTRIBUTE Attribute;
  ULONG ValueLength;
  USHORT ValueOffset;
  USHORT Flags;               // 0x0001 = Indexed
  };
 
struct NONRESIDENT_ATTRIBUTE {
  struct ATTRIBUTE Attribute;
  ULONGLONG StartingVcn;
  ULONGLONG LastVcn;
  USHORT RunArrayOffset;
  UCHAR CompressionUnit;
  UCHAR AlignmentOrReserved[5];
  ULONGLONG AllocatedSize;
  ULONGLONG DataSize;
  ULONGLONG InitializedSize;
  ULONGLONG CompressedSize;    // Only when compressed
  };
 
struct STANDARD_INFORMATION {
  ULONG64 CreationTime;
  ULONG64 FileChangeTime;
  ULONG64 MftChangeTime;
  ULONG64 LastAccessTime;
  ULONG FileAttributes;       /* READ_ONLY=0x01, HIDDEN=0x02, SYSTEM=0x04, VOLUME_ID=0x08, ARCHIVE=0x20, DEVICE=0x40 */
  ULONG MaximumVersions;
  ULONG VersionNumber;
  ULONG ClassId;
  ULONG OwnerId;                        // NTFS 3.0 only
  ULONG SecurityId;                     // NTFS 3.0 only
  ULONGLONG QuotaCharge;                // NTFS 3.0 only
  USN Usn;                              // NTFS 3.0 only
  };
 
struct ATTRIBUTE_LIST {
  enum ATTRIBUTE_TYPE AttributeType;
  USHORT Length;
  UCHAR NameLength;
  UCHAR NameOffset;
  ULONGLONG LowestVcn;
  INODE_REFERENCE FileReferenceNumber;
  USHORT Instance;
  USHORT AlignmentOrReserved[3];
  };
 
struct FILENAME_ATTRIBUTE {
  struct INODE_REFERENCE ParentDirectory;
  ULONG64 CreationTime;
  ULONG64 ChangeTime;
  ULONG64 LastWriteTime;
  ULONG64 LastAccessTime;
  ULONGLONG AllocatedSize;
  ULONGLONG DataSize;
  ULONG FileAttributes;
  ULONG AlignmentOrReserved;
  UCHAR NameLength;
  UCHAR NameType;                 /* NTFS=0x01, DOS=0x02 */
  WCHAR Name[1];
  };
 
struct OBJECTID_ATTRIBUTE {
  GUID ObjectId;
  union {
    struct {
      GUID BirthVolumeId;
      GUID BirthObjectId;
      GUID DomainId;
      };
    UCHAR ExtendedInfo[48];
    };
  };
 
struct VOLUME_INFORMATION {
  LONGLONG Reserved;
  UCHAR MajorVersion;
  UCHAR MinorVersion;
  USHORT Flags;                /* DIRTY=0x01, RESIZE_LOG_FILE=0x02 */
  };
 
struct DIRECTORY_INDEX {
  ULONG EntriesOffset;
  ULONG IndexBlockLength;
  ULONG AllocatedSize;
  ULONG Flags;                 /* SMALL=0x00, LARGE=0x01 */
  };
 
struct DIRECTORY_ENTRY {
  ULONGLONG FileReferenceNumber;
  USHORT Length;
  USHORT AttributeLength;
  ULONG Flags;           // 0x01 = Has trailing VCN, 0x02 = Last entry
  // FILENAME_ATTRIBUTE Name;
  // ULONGLONG Vcn;      // VCN in IndexAllocation of earlier entries
  };
 
struct INDEX_ROOT {
  enum ATTRIBUTE_TYPE Type;
  ULONG CollationRule;
  ULONG BytesPerIndexBlock;
  ULONG ClustersPerIndexBlock;
  struct DIRECTORY_INDEX DirectoryIndex;
  };
 
struct INDEX_BLOCK_HEADER {
  struct NTFS_RECORD_HEADER Ntfs;
  ULONGLONG IndexBlockVcn;
  struct DIRECTORY_INDEX DirectoryIndex;
  };
 
struct REPARSE_POINT {
  ULONG ReparseTag;
  USHORT ReparseDataLength;
  USHORT Reserved;
  UCHAR ReparseData[1];
  };
 
struct EA_INFORMATION {
  ULONG EaLength;
  ULONG EaQueryLength;
  };
 
struct EA_ATTRIBUTE {
  ULONG NextEntryOffset;
  UCHAR Flags;
  UCHAR EaNameLength;
  USHORT EaValueLength;
  CHAR EaName[1];
  // UCHAR EaData[];
  };
 
struct ATTRIBUTE_DEFINITION {
  WCHAR AttributeName[64];
  ULONG AttributeNumber;
  ULONG Unknown[2];
  ULONG Flags;
  ULONGLONG MinimumSize;
  ULONGLONG MaximumSize;
  };
 
 
 
 
/* The NTFS scanner will construct an ItemStruct list in memory, but needs some
   extra information while constructing it. The following structs wrap the ItemStruct
   into a new struct with some extra info, discarded when the ItemStruct list is
   ready.
   A single Inode can contain multiple streams of data. Every stream has it's own
   list of fragments. The name of a stream is the same as the filename plus two
   extensions separated by colons:
         filename:"stream name":"stream type"
   For example:
         myfile.dat:stream1:$DATA
   The "stream name" is an empty string for the default stream, which is the data
   of regular files. The "stream type" is one of the following strings:
      0x10      $STANDARD_INFORMATION
      0x20      $ATTRIBUTE_LIST
      0x30      $FILE_NAME
      0x40  NT  $VOLUME_VERSION
      0x40  2K  $OBJECT_ID
      0x50      $SECURITY_DESCRIPTOR
      0x60      $VOLUME_NAME
      0x70      $VOLUME_INFORMATION
      0x80      $DATA
      0x90      $INDEX_ROOT
      0xA0      $INDEX_ALLOCATION
      0xB0      $BITMAP
      0xC0  NT  $SYMBOLIC_LINK
      0xC0  2K  $REPARSE_POINT
      0xD0      $EA_INFORMATION
      0xE0      $EA
      0xF0  NT  $PROPERTY_SET
      0x100 2K  $LOGGED_UTILITY_STREAM
      */
struct StreamStruct {
  struct StreamStruct *Next;
  WCHAR *StreamName;                     /* "stream name" */
  ATTRIBUTE_TYPE StreamType;             /* "stream type" */
  struct FragmentListStruct *Fragments;  /* The fragments of the stream. */
  ULONG64 Clusters;                      /* Total number of clusters. */
  ULONG64 Bytes;                         /* Total number of bytes. */
  };
struct InodeDataStruct {
  ULONG64 Inode;                         /* The Inode number. */
  ULONG64 ParentInode;                   /* The Inode number of the parent directory. */
  BOOL Directory;                        /* YES: it's a directory. */
  WCHAR *LongFilename;                   /* Long filename. */
  WCHAR *ShortFilename;                  /* Short filename (8.3 DOS). */
  ULONG64 Bytes;                         /* Total number of bytes. */
  ULONG64 CreationTime;                  /* 1 second = 10000000 */
  ULONG64 MftChangeTime;
  ULONG64 LastAccessTime;
  struct StreamStruct *Streams;          /* List of StreamStruct. */
  struct FragmentListStruct *MftDataFragments;   /* The Fragments of the $MFT::$DATA stream. */
  ULONG64 MftDataBytes;                  /* Length of the $MFT::$DATA. */
  struct FragmentListStruct *MftBitmapFragments; /* The Fragments of the $MFT::$BITMAP stream. */
  ULONG64 MftBitmapBytes;                /* Length of the $MFT::$BITMAP. */
  };
struct NtfsDiskInfoStruct {
  ULONG64 BytesPerSector;
  ULONG64 SectorsPerCluster;
  ULONG64 TotalSectors;
  ULONG64 MftStartLcn;
  ULONG64 Mft2StartLcn;
  ULONG64 BytesPerMftRecord;
  ULONG64 ClustersPerIndexRecord;
  struct {
    BYTE Buffer[MFTBUFFERSIZE];
    ULONG64 Offset;
    int Age;
    } Buffers[3];
  };
 
 
 
BOOL AnalyzeNtfsVolume(struct DefragDataStruct *Data);
1
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
18.04.2024, 12:06
ну и LIB с проССедурами оПработки данных

ScanNtfs.cpp.pdf
pdf прибьеш
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2024, 12:06

БД Delphi, Отображение денежного типа
Программа подключена к аксесу. Нужно сделать в что бы в таблице в столбце денежного типа отображались не просто цифры, а цифры с денежным...

Отображение отчета в Delphi 2010
Здравствуйте. С помощью какого компонента в Delphi 2010 можно отобразить на форме отчет, созданный в Rave Reports 7? Просто там нет...

Отображение идентификатора в DBGrid Delphi
Подскажите, пожалуйста, всю голову сломала. Работаю с Delphi и Firebird (с помощью IBExpert). По заданию в Delphi должна получиться...

Delphi 7 Отображение Таблиц RadioButton
Нужна помощь! Хочу сделать просмотр таблиц на Форме при помощи RadioButton. Т.е. в зависимости от выбора пользователь просматривал ту или...

Неправильное отображение шрифтов в Delphi
Открываю базу данных DBF, а там вместо русских букв какие то козябры??? Пробовал реструктуризировать Desktopom - не получается. В Delphi...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru