Конференция "KOL" » фукция копирования
 
  • xz386 © (17.02.09 09:21) [0]
    прошу извенить меня за неопытность но искал на форуме так и не нашел ответа. я только начал учить делфи. прошу полное описание и желательно пример использования function CopyMoveFiles( const FromList, ToList: KOLString; Move: Boolean ): Boolean;
  • Дмитрий (17.02.09 12:20) [1]
    FromList, ToList - имена файлов, разделённые символами ';' или #13
    Move - если True, файлы будут перемещены, в противном случае скопированы
  • xz386 © (17.02.09 13:30) [2]
    а именно пример можно
  • Дмитрий (17.02.09 14:59) [3]
    CopyMoveFiles( 'C:\FromThat.txt', 'C:\To.txt', True ) - перемещение
    CopyMoveFiles( 'C:\FromThat.txt', 'C:\To.txt', False ) - копирование

    Если нужно копировать-перемещать несколько файлов за раз, организууй цикл или передавай в первом-втором параметре пути к файлам, разделённые символами, которые я указал выше
  • xz386 © (18.02.09 09:05) [4]
    не работает компилируется но выдает ошибку. сложно с этим колом разобратся блин. можешь дать весь код что у тебя в редакторе начиная с uses и до end.
  • D[u]fa (18.02.09 09:36) [5]
    какую ошибку?
  • Дмитрий (18.02.09 10:41) [6]
    Нету кода, я от руки писал. Лучше ты давай свой проект начиная с uses и до end.
  • Дмитрий К © (18.02.09 11:22) [7]

    > xz386 ©   (17.02.09 09:21)

    Первый параметр - список файлов с полными путями, разделенный #13 или, если определен символ OLD_COMPAT, ';'. Второй параметр некорректно назван ToList, функции требуется не список файлов а конечная директория.
    Пример. Копирование всех mp3 из рабочей директории в общую папку музыки:
    program CopyMoveFiles_test;

    uses
     Windows, KOL;

    var
     CommonMusicPath: array [0..MAX_PATH] of Char;
     WorkDir: string;
     FFD: TFindFileData;
     ListFrom: PStrList;

    const
     CSIDL_FLAG_CREATE = $8000;
     CSIDL_COMMON_MUSIC = $0035;

    function SHGetFolderPathA(hwndOwner: Cardinal; nFolder: Integer; hToken: Cardinal;
     dwFlags: Cardinal; pszPath: PChar): HRESULT; stdcall; external 'shell32.dll';

    begin
     SHGetFolderPathA(GetDesktopWindow, CSIDL_FLAG_CREATE or CSIDL_COMMON_MUSIC,
         0, {SHGFP_TYPE_CURRENT}0, CommonMusicPath);
     if CommonMusicPath[0] = #0 then
       exit;
     ListFrom := NewStrList;
     try
       WorkDir := IncludeTrailingPathDelimiter(GetWorkDir);
       if Find_First(WorkDir + '*.mp3', FFD) then
       repeat
         ListFrom.Add(WorkDir + FFD.cFileName);
       until not Find_Next(FFD);
       if ListFrom.Count > 0 then
         CopyMoveFiles(ListFrom.Join(#13), string(CommonMusicPath), False);
     finally
       ListFrom.Free;
     end;
    end.

  • xz386 © (18.02.09 14:02) [8]
    вот

    { KOL MCK } // Do not remove this line!
    {$DEFINE KOL_MCK}
    unit Unit1;

    interface

    {$IFDEF KOL_MCK}
    uses Windows, Messages, KOL {$IFNDEF KOL_MCK}, mirror, Classes, Controls, mckControls, mckObjs, Graphics,
     mckCtrls {$ENDIF (place your units here->)};
    {$ELSE}
    {$I uses.inc}
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs;
    {$ENDIF}

    type
     {$IFDEF KOL_MCK}
     {$I MCKfakeClasses.inc}
     {$IFDEF KOLCLASSES} {$I Form1class.inc} {$ELSE OBJECTS} PForm1 = ^TForm1; {$ENDIF CLASSES/OBJECTS}
     {$IFDEF KOLCLASSES}{$I TForm1.inc}{$ELSE} TForm1 = object(TObj) {$ENDIF}
       Form: PControl;
     {$ELSE not_KOL_MCK}
     TForm1 = class(TForm)
     {$ENDIF KOL_MCK}
       KOLProject1: TKOLProject;
       KOLForm1: TKOLForm;
       Button1: TKOLButton;
       procedure Button1Click(Sender: PObj);
     private
       { Private declarations }
     public
       { Public declarations }
     end;

    var
     Form1 {$IFDEF KOL_MCK} : PForm1 {$ELSE} : TForm1 {$ENDIF} ;

    {$IFDEF KOL_MCK}
    procedure NewForm1( var Result: PForm1; AParent: PControl );
    {$ENDIF}

    implementation

    {$IFNDEF KOL_MCK} {$R *.DFM} {$ENDIF}

    {$IFDEF KOL_MCK}
    {$I Unit1_1.inc}
    {$ENDIF}
    function CopyMoveFiles( const FromList, ToList: KOLString; Move: Boolean ): Boolean;
    begin
    CopyMoveFiles( 'C:\1.txt', 'C:\test\1.txt', True );
    end;
    procedure TForm1.Button1Click(Sender: PObj);
    begin
    CopyMoveFiles( 'C:\1.txt', 'C:\test\1.txt', True );
    end;

    end.
  • xz386 © (18.02.09 14:04) [9]
    что не так может я все через 5 точку делаю? или кол не так использую?
  • Дмитрий (18.02.09 17:11) [10]
    Вот это вот убери

    function CopyMoveFiles( const FromList, ToList: KOLString; Move: Boolean ): Boolean;
    begin
    CopyMoveFiles( 'C:\1.txt', 'C:\test\1.txt', True );
    end;

    остальное оставь
  • Дмитрий (18.02.09 17:12) [11]
    а вообще, надо текст ошибки цитировать
  • xz386 © (18.02.09 18:41) [12]
    вот круто работает.... так что тут в кол просто функцию использовать надо сразу и не надо её прописывать? просто я в асм писал в начале функцию потом присваивал ей пораметр а тут сразу параметром пишешью так или нет?

    пс Спасибо тебе за помощь Дмитрий.
  • Дмитрий (19.02.09 09:42) [13]
    Тут нас двое :)

    Нет, не надо прописывать, это не асм, это делфи :)
 
Конференция "KOL" » фукция копирования
Есть новые Нет новых   [134431   +16][b:0][p:0.001]