![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
инфа о файле,скан директории,ADO.
KILROY © (2006-02-18 15:46:00)КАНИЧИВА СЕНСЕИ!!!=)
проблемы:
1)Как узнать инфу о файле(имя(без расширения),тип,размер,дату создания,изменения,создатель файла(документа) ?
2)Как сделать выбор директорий в сетевом окружении ?
3)Как добавить это инфу о файлах в БД?
kilroystudio.narod.ru/ado.rar если не затруднит скачайте и посоветуйте что и как лучше сделать.
begin...end (2006-02-20 21:10:00) [1]> Desdechado © (18.02.06 21:15) [12]
> 1. Пишем функцию поиска по маске, которая передается в качестве
> параметра в нее. Параметром передается и нечто, куда складываем
> результаты.
> 2. Вызываем функцию для каждой из интересующих масок.
Лучше искать один раз, но по маске '*', и в процессе поиска заносить в поиск те имена, которые удовлетворяют какой-либо из масок (MatchesMask).
Virgo_Style (2006-02-20 21:01:00) [2]ALUKARD (20.02.06 20:49) [23]
Чукча не читатель? [3] с минимальными доработками
ALUKARD (2006-02-20 20:49:00) [3]как определить сколько файлов есть в определённой папке с определенным расширением?
KILROY (2006-02-18 22:42:00) [4]вот нашел.
Function GetFileCount(Dir:string):integer;
var fs:TSearchRec;
begin
Result:=0;
if FindFirst(Dir+'\*.htm',faAnyFile-faDirectory-faVolumeID, fs)=0 then
repeat
inc(Result);
until FindNext(fs)<>0;
FindClose(fs);
end;
токо не компилицо. erorr: Begin expected but end found .
вставил код в procedure TForm1.Button1Click(Sender: TObject); .
я уже 10й час сижу...голова опухла.стараюсь как могу!
Кузя (2006-02-18 22:36:00) [5]че то не вижу я решения
решения сам исскать надо или бабло гони
глюки тебе уже готовые показують
KILROY (2006-02-18 22:32:00) [6]Может я совсем отупел?!
но че то не вижу я решения вот этой (1.Надо сделать так чтобы после скана *.тхт пошел скан со следующей пустой строчки *.doc .
ну вот допустим нашел 5 тхт файлов и уже с 6ой строчки нашал вписывать doc.
я вот думаю сделать так чтобы он сосчитал сколько он нашел тхт файлов а потом просто начал записывать со следующей цыфры.
ну вот 5 нашел потом 5+1 и пошел дальше...) проблемы.
остальное сделал уже.
Сеня (2006-02-18 22:21:00) [7]в твоих опусах из поста в пост идут ошибки, которые тебе показывали, а ты что-то лопочешь про "неполучаеццо"
KILROY (2006-02-18 22:06:00) [8]читаю конечно!!!
может пояснишь?...
Вася (2006-02-18 22:04:00) [9]ты хоть читаешь, что тебе пишут? ну-ну...
KILROY (2006-02-18 22:00:00) [10]СПаСибо ТЕ БОЛЬШОЕ!!!уже отредил=)
вот проблемы некоторые решил появились новые.
1.Надо сделать так чтобы после скана *.тхт пошел скан со следующей пустой строчки *.doc .
ну вот допустим нашел 5 тхт файлов и уже с 6ой строчки нашал вписывать doc.
я вот думаю сделать так чтобы он сосчитал сколько он нашел тхт файлов а потом просто начал записывать со следующей цыфры.
ну вот 5 нашел потом 5+1 и пошел дальше...
Desdechado (2006-02-18 21:42:00) [11]> Dir:=IncludeTrailingBackSlash(Dir);
> dir+'\*.txt'
масло масляное
справку читай по функциям, что используешь
> RowCount := 1;
это я уже говорил. теперь думай сам
KILROY (2006-02-18 21:41:00) [12]ВООО!УРЯ!!!НАМУТИЛ!!вот токо прально ли это...и еще есть пустые клеточки...как от них избавицо...и файлов будет много ну 50 шт. будет ...вот...вощем надо от пустых избавицо...
begin
stringGrid1.RowCount := 0;
FileAttrs := FileAttrs + faAnyFile;
Dir:=IncludeTrailingBackSlash(Dir);
with stringGrid1 do
begin
RowCount := 90;
dir:= Label1.Caption;
if FindFirst( dir+'\*.txt', FileAttrs, sr) =0
then
begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
RowCount := RowCount + 1;
Cells[0,RowCount-1] := sr.name;
Cells[1,RowCount-1] := IntToStr(sr.size);
end;
until FindNext(sr) <> 0;
FindClose(sr);
begin
RowCount := 100;
dir:= Label1.Caption;
if FindFirst( dir+'\*.doc', FileAttrs, sr) =0
then
begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
RowCount := RowCount + 1;
Cells[0,RowCount-1] := sr.name;
Cells[1,RowCount-1] := IntToStr(sr.size);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
KILROY (2006-02-18 21:34:00) [13]хмм...а вот если так???....все работает токо он ищет почему то *.doc
begin
stringGrid1.RowCount := 0;
FileAttrs := FileAttrs + faAnyFile;
Dir:=IncludeTrailingBackSlash(Dir);
with stringGrid1 do
begin
RowCount := 2;
dir:= Label1.Caption;
if FindFirst( dir+'\*.txt', FileAttrs, sr) =0
then
begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
RowCount := RowCount + 1;
Cells[0,RowCount-1] := sr.name;
Cells[1,RowCount-1] := IntToStr(sr.size);
end;
until FindNext(sr) <> 0;
FindClose(sr);
begin
RowCount := 1;
dir:= Label1.Caption;
if FindFirst( dir+'\*.doc', FileAttrs, sr) =0
then
begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
RowCount := RowCount + 1;
Cells[0,RowCount-1] := sr.name;
Cells[1,RowCount-1] := IntToStr(sr.size);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
Desdechado (2006-02-18 21:15:00) [14]> если в отдельности то stringgrid обнуляецо
RowCount := 0; делай 1 раз, а не для каждой маски
я бы сделал как-то так:
1. Пишем функцию поиска по маске, которая передается в качестве параметра в нее. Параметром передается и нечто, куда складываем результаты.
2. Вызываем функцию для каждой из интересующих масок.
KILROY (2006-02-18 20:52:00) [15]вот что нить типо того токо это выдает ошибку=)
if FindFirst( dir+'\*.doc', FileAttrs, sr) = 0 then
while
if FindFirst( dir+'\*.txt', FileAttrs, sr) = 0
then
begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
RowCount := RowCount + 1;
Cells[0,RowCount-1] := sr.name;
Cells[1,RowCount-1] := IntToStr(sr.size);
end;
KILROY (2006-02-18 20:36:00) [16]1. а если в отдельности то stringgrid обнуляецо.как делать маску я невъехал(((...и вообще че не похоже это маску...
надо наверно чтобы все это в одной кнопочке.и записывались сразу все файлы с конкретными расширениями.
или как то с while ...
Desdechado (2006-02-18 19:11:00) [17]погляди еще сюда
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1140275055&n=0
Desdechado (2006-02-18 19:03:00) [18]1. каждый тип в отдельности
2. изучи структуру sr: TSearchRec
KILROY (2006-02-18 18:08:00) [19]пробовал изучить вот это http://www.sources.ru/delphi/delphi_get_everything_about_file.shtml
но че то как то непонятно.да и к томуже не фига не компилицо.ошибка за ошибкой.
KILROY (2006-02-18 18:02:00) [20]ДОМЕ АРИГАТО Desdechado!!!!!!!!!+)))))))
а что касаецо остальных проблем?
1.И еще как сделать что бы он сканил не токо файлы с одним расширением(ехе,тхт...).
уже все перепробовал, ваще не сканит.т.е. сканит но показывает что 0 найдено.
пробовал:
dir+'*.txt' , '*.doc'
dir+'*.txt' + '*.doc'
dir+'*.txt' and '*.doc'
???
2.Cells[0,RowCount-1] := sr.name; //имя
Cells[1,RowCount-1] := IntToStr(sr.size); //размер
А остальные атрибуты как написать... тип,дата создания,создатель(владелец) документа...???