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

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

Работа с файлами [D7]


Страницы:   1 2

Overclocker ©   (2010-10-04 14:07:00) 

Задача такая: существуют различные файлы (в основном *.doc) в каком либо каталоге, имена файлов - дата (обозваны датами когда были созданы), необходимо скопировать или переместить файлы в папки(созданные по датам, т.е. соответствующий файл в соответствующую папку, соответветственной датой). Пути от куда и куда желательно указывать самомоу.. помогите хотябы начать или исходники если есть, примеры, сайты где это есть, нужно очень сильно!!!


Andy BitOff   (2010-10-04 22:32:00) [1]

> Overclocker ©   (04.10.10 18:39) [27]
> то есть как это сделать?

Вызвать функцию ForceDirectory (так помоему) с соответствующим параметром. Читай справку.


Anatoly Podgoretsky   (2010-10-04 19:35:00) [2]

> Плохиш  (04.10.2010 19:31:29)  [29]

Обучение работе с FindFirst особо бессмыслено, столько пытались и все в
пустую. Пусть лучше учится работать с поиском.


Плохиш   (2010-10-04 19:31:00) [3]

обучение программированию на форуме - бессмысленная потеря времени.


Overclocker   (2010-10-04 18:58:00) [4]

а допустим вручную пути прописывать откуда и куда копировать .. как это реализовать????


Overclocker   (2010-10-04 18:39:00) [5]


> Andy BitOff ©   (04.10.10 18:13) [25]
> А, да, перед копированием ForceDirectory выполнить


то есть как это сделать?


Overclocker   (2010-10-04 18:25:00) [6]

все разобрался спасибо всем:)


Andy BitOff   (2010-10-04 18:13:00) [7]

А, да, перед копированием ForceDirectory выполнить


stas   (2010-10-04 18:11:00) [8]

Overclocker ©   (04.10.10 17:41) [19]
Здрасте! а в [16] что ?


Andy BitOff   (2010-10-04 18:10:00) [9]

> Overclocker ©   (04.10.10 16:49) [13]
> через какую переменную или объект указывать путь для создания
> папки , и при копировании файла в эту папку как написать?
> какой тип переменной должен быть...?



> stas ©   (04.10.10 17:08) [16]
> ST1,ST2:STring;
> FD,FD1 : TWin32FindData;

> CopyFile ( Pchar(ST1+'\'+FD.cFileName),Pchar(ST2+'\'+FD.cFileName) ,false);


Dennis I. Komarov   (2010-10-04 18:10:00) [10]

Какой код? В [8] Юрий Сергеевич уже разжевал все...


Overclocker   (2010-10-04 18:07:00) [11]

дайте плиз код :) !!!!!!


Плохиш   (2010-10-04 17:45:00) [12]


> Overclocker ©   (04.10.10 17:41) [19]

Ты не правильно попрашайничаешь. Надо так:

КОД ДАВАЙ!!!!!!!!!!


Overclocker   (2010-10-04 17:41:00) [13]


> stas ©   (04.10.10 17:31) [18]


исходники есть?


stas   (2010-10-04 17:31:00) [14]

Плохиш ©   (04.10.10 17:24) [17]
Прочел хорошо, но я непонял чего непонятно, как со строкой работать или что?


Плохиш   (2010-10-04 17:24:00) [15]


> stas ©   (04.10.10 17:08) [16]

Ты [13] хорошо прочитал?


stas   (2010-10-04 17:08:00) [16]

Непонял в чем проблема с путями... вот пример копирования всего из папки+проверка на актуальность, вместе с подчиненными папками.

Procedure UpdateFiles(PathSource,PathDest: string);
var
FD,FD1 : TWin32FindData;
FH,FH1 : THandle;
TempSize: TULargeInteger;
SR:TsearchRec;
ST1,ST2:STring;
begin
If (PathSource='') or (PathDest='') then exit;
 if PathSource[length(PathSource)]<>'\' Then PathSource:=PathSource+'\';
 if PathDest[length(PathDest)]<>'\' Then PathDest:=PathDest+'\';
ST1:=PathSource;
ST2:=PathDest;
// showMessage (ST1);
if not(DirectoryExists(PathSource)) then exit;
if not(DirectoryExists(PathDest)) then MkDir(PathDest);

FH := FindFirstFile( PChar( PathSource + '*.*' ), FD );
repeat
  if (FH<>INVALID_HANDLE_VALUE) and (FD.cFileName <> string('.')) and
                                             (FD.cFileName<>string('..')) then
    begin
      if (FILE_ATTRIBUTE_DIRECTORY and FD.dwFileAttributes) <> 0 then
      begin
        if  not DirectoryExists (ST2+FD.cFileName) then mkDir (ST2+FD.cFileName);
        UpdateFiles(ST1 + FD.cFileName + '\',ST2+FD.cFileName+'\')
      end
      else
     begin
     FindFirstFile (Pchar(ST2+FD.cFileName),FD1);
     if  (ExtractFileExt(FD.cFileName)='.udl') then
      begin
         FileSetAttr(Pchar(ST2+'\'+FD.cFileName), faArchive);
        // if FileExists (ST2+'\'+FD.cFileName) then DeleteFile (ST2+'\'+FD.cFileName);
        CopyFile ( Pchar(ST1+'\'+FD.cFileName),Pchar(ST2+'\'+FD.cFileName),false);
      end else

     if (not FileExists (ST2+FD1.cFileName)) {or  ((fd1.ftLastWriteTime.dwHighDateTime*High(DWord)+Fd1.ftLastWriteTime.dwLowDateTime)<>(fd.ftLastWriteTime.dwHighDateTime*High(DWor d)+Fd.ftLastWriteTime.dwLowDateTime))} or (fd1.ftLastWriteTime.dwHighDateTime<>Fd.ftLastWriteTime.dwHighDateTime) then
     begin
//      Form1.Label3.Caption:='Копирую файл: '+FD.cFileName;
  //   if ((paramstr(1)='/s') or (paramstr(1)='/S')) or (FD.cFileName<>'soft.udl') then
  if FileExists (ST2+'\'+FD.cFileName) then DeleteFile (ST2+'\'+FD.cFileName);
     CopyFile ( Pchar(ST1+'\'+FD.cFileName),Pchar(ST2+'\'+FD.cFileName),false);
    //  CopyFolder  (ST1+'\'+FD.cFileName,ST2+'\'+FD.cFileName,FH1);
     end;
     end;
    end;
until FindNextFile(FH,FD) = false;
FindClose (SR);
end;


Anatoly Podgoretsky   (2010-10-04 17:03:00) [17]

> Юрий Зотов  (04.10.2010 16:09:10)  [10]

Тогда еще 5 минут скидываем.


Плохиш   (2010-10-04 17:02:00) [18]

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


Overclocker   (2010-10-04 16:49:00) [19]


> 1. Юзер указывает каталог с файлами.2. Через FindFirst и
> пр. создаем список имен файлов (TStringList).3. Идем по
> этому списку в цикле и для каждого файла:3.1. Зная его имя,
>  формируем имя каталога, в который его надо положить.3.2.
>  Если такого каталога нет, то создаем его.3.3. Копируем
> файл.


я понял алгоритм и понял что куда только один вопрос остается не понятен:
через какую переменную или объект указывать путь для создания папки , и при копировании файла в эту папку как написать? какой тип переменной должен быть...?


Плохиш   (2010-10-04 16:42:00) [20]

Стоит заняться поисками студента, за небольшую сумму напишет.


Страницы:   1 2

Наверх

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