- Код: Выделить всё
Function LoadIniFile(AClose : Boolean = False) : Boolean;
Var
FIn, FOut : TFileStream;
Fzd : TDecompressionStream;
RSize : Integer;
Buff : Array[0..5119] Of Byte;
Begin
Result := False;
If Not AClose Then
Begin
INIFileName := GetAppConfigDir(False);
If Not DirectoryExists(INIFileName) And Not CreateDir(INIFileName) Then Exit;
INIFileName := INIFileName + '\' + ChangeFileExt(ExtractFileName(Application.ExeName), '.INI');
TmpINIFileName := GetTempFileName;
If FileExists(INIFileName) Then
Begin
FIn := TFileStream.Create(INIFileName, fmOpenRead);
Fzd := TDecompressionStream.Create(FIn);
FOut := TFileStream.Create(TmpINIFileName, fmCreate);
Repeat
RSize := Fzd.Read(Buff[0], SizeOf(Buff));
FOut.Write(Buff[0], RSize)
Until RSize <> SizeOf(Buff);
FOut.Free;
Fzd.Free;
FIn.Free
End;
INIFile := TINIFile.Create(TmpINIFileName)
End;
Result := True
End;
В Дельфях эта функция работает без проблем (естественно с учетом особенностей). В Лазарусе при компиляции выдается хинт "Local variable "Buff" does not seem to be initialized". Вопрос следующий: можно ли проигнорировать этот хинт, а если нет, то где и как я должен инициализировать массив?