Работа с файлами в Delphi.

  • Автор темы Pavel
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

Pavel

Имеется папка с большим количеством файлами. Надо поочередно определять имя каждого файла в этой папке и присваивать их файловой переменной и потом читать из них информацию. Т. е. алгоритм приблизительно такой: заходим в папку определяем имя первого файла и присваеваем его файловой переменной, затем определяем имя второго файла и делаем тоже самое, и т. д. пока в папке есть файлы. Как это сделать?
 
J

jak_forest

а в чем собственно проблема использованием findfirst - findnext (или по аналогии как-то так называются). а читать файлы можно либо стандартными средствами (либо паскалевскими, либо делфийскими) или (что идеально для текстовых файлов) загружать их целиком в тип TStringList и потом разгребать их построчно
 
G

Guest

Проблема в том, что не знаю как это сделать.
 
J

jak_forest

кого именно не знаешь ?
зачитывается в TStringList по такой схеме:

...
var ...
...
strs:TsrtingList;
....
begin
...
strs := TStringList.Create;
...
while (...) do begin
...
strs.Clear;
strs.LoadFromFile("[path\]filename");
...
//разборка все что прочитали
...
end;


А поповоду поиска файлов, надо смотреть уже на сами процедуры. (Под рукой Дефли нет, а наизусть не помню - вернее помню как минимум есть два варианта: средствами винды и средствами паскаля/дефли) Кажись в случае винды возвращается указатель, который нужно использовать для поиска следующего файла, а также в какую-ту переменную записывается вся инфа по найденному файлу.
Залезь на www.delphikingdom.com а там либо в "Лицей" либо в "Hello, World!" разделах поиищи пример поиска файлов.
да и справку почитай. По крайней мере дефлийский вариант поиска файлов должен быть с примерами.

ЗЫ: звыняюсь за большой пост.
 
G

Guest

Команда "strs := TStringList.Create;" я так понитмаю определяет имя файла?
А как записать условие: пока в папке есть файлы делать тото?
 
B

Barmutik

Указанная Вами команда создаёт объект класса TStringList.

Код:
if FindFirst(..., SR) = 0 then
begin
repeat
 ...
 until FindNext(SR) <> 0 do
 FindClose(SR);
end;

Для разрешения полобных вопросов откройте любую книжку по программированиюна на Pascal .. как Вам уже посоветовали выше...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!