Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Цитата semiono:
Нужно найти файл »
Пример поиска по маске
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[Code]
var
  // задаём переменную глобально, для всего скрипта
  Mask: string;

procedure RunMyProg(FileNeme: string);
begin
  // здесь что нибудь делаем с найденым файлом
  MsgBox(FileNeme, mbInformation, MB_OK );
end;

function FindFile(Path: string): Boolean;
var
  FSR, DSR: TFindRec;
  FindResult: Boolean;
begin
  Result:= False;
  if Path[Length(Path)] <> '\' then Path:= Path + '\';
  FindResult:= FindFirst(Path + Mask, FSR);
  try
    while FindResult do
      begin
        if FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then
          begin
            RunMyProg(Path + FSR.Name);
            Result:= True;
            Exit;
          end;
        FindResult:= FindNext(FSR);
      end;
    FindResult:= FindFirst(Path + '*.*', DSR);
    while FindResult do
      begin
        if ((DSR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) and
          not ((DSR.Name = '.') or (DSR.Name = '..')) then
         FindFile(Path + DSR.Name);
        FindResult:= FindNext(DSR);
      end;
  finally
    FindClose(FSR);
    FindClose(DSR);
  end;
end;

function InitializeSetup(): Boolean;
var
  i: Integer;
  ArrayOfMask: TArrayOfString;
  StartFolder: string;
begin
  StartFolder:= ExpandConstant('{pf}\Inno Setup 5'); // задаём папку откуда начинать поиск
  ArrayOfMask:= ['*n*.txt', 'R*.txt', '*m*.txt']; // заполняем массив масок для поиска
  for i:= 0 to GetArrayLength(ArrayOfMask)-1 do // перебираем весь масив масок
    begin
      Mask:= ArrayOfMask[i];
      if FindFile(StartFolder) then Break;
    end;
end;


Цитата vint56:
не подскажеш как на второй процесбар наложить текстуру »
честно говоря не знаю.

Цитата Vengeance:
чтобы g3 компонент если выбрать, он заменял определённые файлы g1 »
Поподробней раскажите.
Цитата Vengeance:
но он говорит что-то про директорию и выдаёт ошибку. »
Покажите пример как делаете.
Цитата Vengeance:
Мне сказали, что вроде надо батник как-то писать? »
Зачем, всё можно сделать в секции [Сode]

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:04, 20-02-2010 | #1312