Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

инфа о файле,скан директории,ADO.


Страницы:   1 2

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); //размер

А остальные атрибуты как написать... тип,дата создания,создатель(владелец) документа...???


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо