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 если не затруднит скачайте и посоветуйте что и как лучше сделать.


Desdechado   (2006-02-18 17:40:00) [21]

> я убираю dir
искать будет в текущей директории, этоне обязательно директория с программой

> сканит в С:\
нет слэша между C:\ado и *.txt, сделай
Dir:=IncludeTrailingBackSlash(Dir);


KILROY   (2006-02-18 17:27:00) [22]

И еще как сделать что бы он сканил не токо файлы с одним расширением.
уже все перепробовал, ваще не сканит.
Болит моя башка +_+


KILROY   (2006-02-18 17:24:00) [23]

begin
 stringGrid1.RowCount := 0;

   FileAttrs := FileAttrs + faAnyFile;

 with stringGrid1 do
 begin
   RowCount := 0;
   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);
   end;

      end;


Вот когда я убираю dir из этой сторчки    if FindFirst( dir+'*.txt',  FileAttrs, sr) = 0 then тогда сканит в директории с прогой,а когда стоит то сканит в С:\ .Я уже всю голову сломал.


KILROY   (2006-02-18 17:14:00) [24]

КРУТО!!!Такой краткости я еще не видел=)))
1. 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;

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

procedure TForm1.Button1Click(Sender: TObject);
var
TitleName : string;  

lpItemID : PItemIDList;  

BrowseInfo : TBrowseInfo;  

DisplayName : array[0..MAX_PATH] of char;  

TempPath : array[0..MAX_PATH] of char;  

 begin
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);  

BrowseInfo.hwndOwner := Form1.Handle;  

BrowseInfo.pszDisplayName := @DisplayName;  

TitleName := 'Please specify a directory';  

BrowseInfo.lpszTitle := PChar(TitleName);  

BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;  

lpItemID := SHBrowseForFolder(BrowseInfo);  

if lpItemId <> nil then begin  
 
SHGetPathFromIDList(lpItemID, TempPath);  
ShowMessage(TempPath);  
GlobalFreePtr(lpItemID);  
end;  
end;

Хмм..с этим тоже справился...токо раньше у меня в кнопочке был вот этот код
procedure TForm1.Button3Click(Sender: TObject);
begin
 begin
 Dir := 'C:\ado';
 if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
   Label1.Caption := Dir;

Теперь при нажатии на кнопочку поиск(файлов) то прога ищет токо те которыйе либо в каталоге с прогой либо на С:\ .Вот никак непойму как сделать так чтобы после выбора директории скан шел именно из нее...?
3.Пока еще не дошел.Но как вы видели я реализовал связь через ADO c Access.


Desdechado   (2006-02-18 15:57:00) [25]

1. FindFirst
2. function SHGetFolderPath(hwnd: HWND; csidl: Integer; hToken: THandle; dwFlags: DWord; pszPath: PAnsiChar): HRESULT; stdcall;
3. while( FindNext ) do begin
qry.Text:='INSERT...';
qry.ExecSQL;
end;


Страницы:   1 2

Наверх

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