1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

DLL ISDone 0.6 final

Библиотека для распаковки arc, 7z, rar, pcf, srep архивов в InnoSetup.

  1. Старожил

    Регистрация:
    6 сен 2011
    Сообщения:
    19
    Симпатии:
    1
    А скопировать именно заданий файл?
     
  2. Пользователь

    Регистрация:
    17 сен 2017
    Сообщения:
    14
    Симпатии:
    3
    как то так
    Код (Text):
    CopyDir(ExpandConstant('{app}\путь_к_копируемому_файлу_\filename.txt'), ExpandConstant('{app}\куда_нам_надо_скопировать_файл'));
     
  3. Старожил

    Регистрация:
    6 сен 2011
    Сообщения:
    19
    Симпатии:
    1
    if not ISArcExtract ( 0, 0, ExpandConstant('{tmp}\ukr.bin'), ExpandConstant('{app}\'), '', true, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{tmp}\'), notPCFonFLY{PCFonFLY}) then break;
    CopyDir(ExpandConstant('{app}\update\update.rpf'), ExpandConstant('{app}\update_backup'));
    MoveDir(ExpandConstant('{app}\update\update.rpf'), ExpandConstant('{app}\'));
    if not ISxDeltaExtract ( 0, 0, 0, 640, ExpandConstant('{app}\update.rpf'), ExpandConstant('{app}\update.dif'), ExpandConstant('{app}\update\update.rpf'), true, true) then break;
    Вот как задал и неработаєт.
     
  4. Пользователь

    Регистрация:
    17 сен 2017
    Сообщения:
    14
    Симпатии:
    3
    для MoveDir нужна процедура
    на всякий случай, MoveDir - это перенос файла/папки, CopyDir - это копирование файла/папки
    Код (Text):

    procedure MoveDir(const fromDir, toDir:String);
    var
      searchResult : TFindRec;
    begin            
      if fromDir[Length(fromDir)]<>'\' then fromDir:=fromDir+'\';  
      if toDir[Length(toDir)]<>'\' then toDir:=toDir+'\';
      ForceDirectories(toDir);
      if FindFirst(fromDir+'*.*', searchResult) then
      begin
        repeat    
          Application.ProcessMessages();
          if (searchResult.Attributes and FILE_ATTRIBUTE_DIRECTORY ) <> FILE_ATTRIBUTE_DIRECTORY  then
          begin  
            if FileExists(toDir+searchResult.name) then
              DeleteFile(toDir+searchResult.name);
            RenameFile(fromDir+searchResult.name, toDir+searchResult.name);
          end else if (searchResult.Name <> '..') and (searchResult.Name <> '.') then
            MoveDir(fromDir + searchResult.Name, toDir + searchResult.Name);
        until not FindNext(searchResult);
        FindClose(searchResult);
      end;
    end;
     
     
  5. Старожил

    Регистрация:
    6 сен 2011
    Сообщения:
    19
    Симпатии:
    1
    Код (Text):
    procedure CopyDir(const fromDir, toDir:String);
    var
      searchResult : TFindRec;
    begin
      if fromDir[Length(fromDir)]<>'\' then fromDir:=fromDir+'\';
      if toDir[Length(toDir)]<>'\' then toDir:=toDir+'\';
      ForceDirectories(toDir);
      if FindFirst(fromDir+'*.*', searchResult) then
      begin
        repeat
          Application.ProcessMessages();
          if (searchResult.Attributes and FILE_ATTRIBUTE_DIRECTORY ) <> FILE_ATTRIBUTE_DIRECTORY  then
          begin
            if FileExists(toDir+searchResult.name) then
              DeleteFile(toDir+searchResult.name);
            FileCopy(fromDir+searchResult.name, toDir+searchResult.name, false);
          end else if (searchResult.Name <> '..') and (searchResult.Name <> '.') then
            CopyDir(fromDir + searchResult.Name, toDir + searchResult.Name);
        until not FindNext(searchResult);
        FindClose(searchResult);
      end;
    end;

    procedure MoveDir(const fromDir, toDir:String);
    var
      searchResult : TFindRec;
    begin
      if fromDir[Length(fromDir)]<>'\' then fromDir:=fromDir+'\';
      if toDir[Length(toDir)]<>'\' then toDir:=toDir+'\';
      ForceDirectories(toDir);
      if FindFirst(fromDir+'*.*', searchResult) then
      begin
        repeat
          Application.ProcessMessages();
          if (searchResult.Attributes and FILE_ATTRIBUTE_DIRECTORY ) <> FILE_ATTRIBUTE_DIRECTORY  then
          begin
            if FileExists(toDir+searchResult.name) then
              DeleteFile(toDir+searchResult.name);
            FileCopy(fromDir+searchResult.name, toDir+searchResult.name, false);
          end else if (searchResult.Name <> '..') and (searchResult.Name <> '.') then
            MoveDir(fromDir + searchResult.Name, toDir + searchResult.Name);
        until not FindNext(searchResult);
        FindClose(searchResult);
      end;
    end;
     
  6. Старожил

    Регистрация:
    6 сен 2011
    Сообщения:
    19
    Симпатии:
    1
    папку копируєт нормально но вот файл нехочет.
     
  7. Пользователь

    Регистрация:
    17 сен 2017
    Сообщения:
    14
    Симпатии:
    3
    сори мой косяк
    Код (Text):

            FileCopy(ExpandConstant('{app}\путь_к_копируемому_файлу_\filename.txt'), ExpandConstant('{app}\\куда_нам_надо_скопировать_файл'), false);
     
    stalqer нравится это.
  8. Старожил

    Регистрация:
    6 сен 2011
    Сообщения:
    19
    Симпатии:
    1
    FileCopy(ExpandConstant('{app}\update\update.rpf'), ExpandConstant('{app}\update_backup\update.rpf'), false);
    Так работаєт

    А как переместить один файл?
    И за что отвечаєт --> , false);
     
    Последнее редактирование модератором: 19 июн 2018
  9. Old Men Проверенный

    Регистрация:
    17 июн 2011
    Сообщения:
    456
    Симпатии:
    429
    Пол:
    Мужской
    stalqer, из справки
    Pascal Scripting: FileCopy
    Прототип:

    function FileCopy(const ExistingFile, NewFile: String; const FailIfExists: Boolean): Boolean;

    Описание:
    Копирует ExistingFile в NewFile, сохраняя отметки времени и атрибуты файла.
    Если FailIfExists является True, то функция не выполнится, если NewFile уже существует, иначе просто перезапишет файл.
    При удачном выполнении возвращает True, иначе False.
     

    Вложения:

    • ISetup.zip
      Размер файла:
      1,1 МБ
      Просмотров:
      22
    YURSHAT нравится это.
  10. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.215
    Симпатии:
    782
    stalqer, достаточно нажать под сообщением, "мне нравится" / человек увидит, что его сообщение вам помогло, ну или было полезным для вас. Спасибо.
     
    YURSHAT и stalqer нравится это.
  11. Пользователь

    Регистрация:
    29 авг 2017
    Сообщения:
    4
    Симпатии:
    0
    Пол:
    Мужской
  12. Ветеран

    Регистрация:
    18 сен 2014
    Сообщения:
    448
    Симпатии:
    61
    Пол:
    Мужской
    Парни сорри за нубский вопрос но.
    Впервые потребовалось разбить репак для записи на болванки а не найду в скрипте такой функции.. Кто поможет? Очень надо
     
  13. Ветеран

    Регистрация:
    17 сен 2016
    Сообщения:
    77
    Симпатии:
    11
  14. Ветеран

    Регистрация:
    18 сен 2014
    Сообщения:
    448
    Симпатии:
    61
    Пол:
    Мужской
    agent555, Почти. ShowChangeDiskWindow вот это
     

Поделиться этой страницей