Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
129 / 31 / 3
Регистрация: 03.08.2010
Сообщений: 630

Файловая система

15.08.2010, 20:56. Показов 3422. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. Как удалить файл f с диска?
2. Как копировать файл f в папку tf?
3. Как переименовать файл f?
4. Как получить в массив A все файлы папки t?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.08.2010, 20:56
Ответы с готовыми решениями:

Файловая система
Не работает программа, помогите исправить ее пожалуйста.

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

Файловая система.
Задан файл F, состоящий из записей. Каждая запись содержит название книги, автора и год издания. Переписать в файл G все названия книг в...

9
 Аватар для abiprofi
48 / 48 / 7
Регистрация: 04.08.2010
Сообщений: 110
15.08.2010, 21:23
function FileSearch (const Name, DirList: string) : string;
Данная процедура производит поиск в каталогах DirList файла Name.
Если в процессе выполнения FileSearch обнаруживается искомое имя файла,
то функция возвращает в строке типа string полный путь к найденному файлу.
Если файл не найден, то возвращается пустая строка

function DeleteFile (const FileName: string): Boolean;
Функция производит удаление файла FileName с диска и возвращает значение False,
если файл удалить не удалось или файл не существует.

procedure GetDir(D: Byte; var S: string);
Возвращает число, соответствующее диску, на котором содержится текущий
каталог s. о может принимать одно из следующих значений:
* 0 — по умолчанию (текущий);
* 1 - А;
* 2 - В;
* 3 - С
и т. д.
Процедура не генерирует код ошибки. Если имя диска в D оказывается ошибочным,
то в строке S возвращается значение Х:\, как если бы текущая папка была на этом
ошибочно указанном диске.

procedure Rename (var F; NewName: string) ;
Процедура изменяет имя файла, связанного с файловой переменной F.
Переменная NewName является строкой типа string или PChar (если включена
поддержка расширенного синтаксиса)

Почитайте: http://www.programmon.ru/Delphi7prof/9.html
0
129 / 31 / 3
Регистрация: 03.08.2010
Сообщений: 630
15.08.2010, 23:19  [ТС]
У меня на самом деле delphi lite 2010, но использовать я умею только консольные приложения.

abiprofi, а если имена файлов заранее не известны, а нужно обработать все файлы в известной папке?
0
 Аватар для STRATEG
1174 / 480 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
16.08.2010, 07:58
Сидорович рекурсия тут в помощь.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure Find(cDir:string);
var
SearchRec: TSearchRec; // информация о файле или каталоге
info:string;
begin
 
    if length (cDir)<> 3 then cDir := cDir+'\';
    if FindFirst(cDir + 'Mask.ext',faSysFile + faReadOnly + faHidden + faArchive + faVolumeID,SearchRec) = 0 then
    repeat
 
    //тут обрабатывай файл. его полный путь (cDir + SearchRec.Name)
 
    until FindNext(SearchRec) <> 0
  end;
0
129 / 31 / 3
Регистрация: 03.08.2010
Сообщений: 630
16.08.2010, 15:53  [ТС]
А что за тип TSearchRec? И я рекурсии не увидел, и что за процедуры FindFirst и FindNext?
0
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
16.08.2010, 16:08
Цитата Сообщение от Сидорович Посмотреть сообщение
А что за тип TSearchRec? И я рекурсии не увидел, и что за процедуры FindFirst и FindNext?
Вот пример.
0
КотЪ
 Аватар для Zabiyak
219 / 219 / 60
Регистрация: 26.05.2009
Сообщений: 688
16.08.2010, 16:08
Delphi
1
2
3
4
5
6
7
8
9
TSearchRec = record
     Time        : Integer;
     Size        : Integer;
     Attr        : Integer;
     Name        : TFileName;
     ExcludeAttr : Integer;   
     FindHandle  : THandle;
     FindData    : TWin32FindData;
end;
Запись типа TSearchRec определяет структуру данных, используемую подпрограммами FindFirst и FindNext для хранения информации искомого файла.

Time = Последняя дата и время изменения
Size = Размер файла в байтах
Attr = Атрибуты файла
Name = Имя файла

Где Attr может иметь следующие значения:

faAnyFile : Любой файл
faReadOnly : Файлы только для чтения
faHidden : Скрытые файлы
faSysFile : Системные файлы
faVolumeID : Файлы идентификаторы размера
faDirectory : Каталоги
faArchive : Архивные файлы


Остальные поля служебные.
0
129 / 31 / 3
Регистрация: 03.08.2010
Сообщений: 630
17.08.2010, 13:03  [ТС]
Не работает. Функция FindFirst всегда возвращает ненулевое значение!
Delphi
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
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
const Dir:string='D:\program files\Poker\Texas Hold''em Poker 3D - Deluxe Edition\data\sound\2';
 
var
  SearchRec: TSearchRec;
  info,cDir:string;
  i:integer;
  t:string;
 
procedure CopyFile(oldFile,newFile:string);
  var
    old,new:file;
    flg:integer;
    x:string;
  begin
    assign(old,oldFile);
    assign(new,newFile);
    reset(old,1);
    rewrite(new,1);
    repeat
      blockread(old,x,1,flg);
      if flg=1 then
        blockwrite(new,x,1,flg);
    until flg=0;
    close(old);
    close(new);
end;
 
begin
  for i := 1 to 7 do
    begin
      str(i,t);
      cDir:=Dir+t+'\';
//    if length (cDir)<> 3 then cDir := cDir+'\';
      if FindFirst(cDir + 'Mask.ext',faSysFile + faReadOnly + faHidden + faArchive + faVolumeID,SearchRec) = 0 then
      repeat
        CopyFile('D:\program files\Poker\sound\_leg5.wav',cDir+SearchRec.Name);
      until FindNext(SearchRec) <> 0
    end;
end.
Функция возвращает всегда 2.
0
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
17.08.2010, 13:53
Сидорович, посмотри пример кода, на который я своём прежнем посте дал ссылку.
Что касается приведённого кода. Для копирования файлов можно подключить модуль Windows и применять функцию:
Delphi
1
2
3
4
5
6
7
8
uses
  Windows;
 
var
  FileName1, FileName2 : String;
begin
...
  CopyFile(PChar(FileName1), PChar(FileName2), False);
Кроме этого, здесь:
Delphi
1
FindFirst(cDir + 'Mask.ext',faSysFile + faReadOnly + faHidden + faArchive + faVolumeID,SearchRec) = 0 then
в заданной папке ищется файл с именем: 'Mask.ext'. Если такого файла нет, то FindFirst <> 0.
---
Если применяются функции FindFirst() и FindNext(), в конце работы обязательно надо вызвыать FindClose(), чтобы небыло утечек памяти. - FindClose() освобождает память, выделенную функциями FindFirst() и FindNext().
---
Сидорович, лучше возьми за основу этот код.
1
129 / 31 / 3
Регистрация: 03.08.2010
Сообщений: 630
17.08.2010, 16:44  [ТС]
Я разобрался во всём. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.08.2010, 16:44
Помогаю со студенческими работами здесь

Файловая система и система управления вводом-выводом в ОС Linux
Дали задание написать вот что: &quot;Разработать программу, которая выводит на экран содержимое текущего каталога, упорядоченное по времени...

Файловая система
Помогите. Я уже копаюсь не первые сутки не могу нормально скомпилировать две части кода и переделать их под Windows. Я наскрябал 2...

Файловая система
Дан каталог, в нем 3 любых файла. Нужно вывести список файлов(имя файла, размер), отсортированный по размеру по убыванию.

Файловая система
Посчитать количество слов,содержащих от 3 до 6 букв, в данном файле(путь к файлу-в командной строке)

Файловая система
Здравствуйте! Не могли бы вы подсказать как нужно форматировать логический диск, чтобы его видела Windows и Ubuntu?


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru