Модуль "P2KApi" (часть 35) - TP2KAPI.UploadFile

Рубрика: Исходники
Среда, 21 апреля 2010 г.
Просмотров: 158
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
function TP2KAPI.UploadFile(AOriginFile, ADestFile: string; AfrmProgress: TfrmProgress): boolean;
var
 xFileLen: dword;
 xFHandle: dword;
 xStream: TStream;
 IsOk: boolean;

begin
  result:= false;
  if not TelStatus then exit;
  xFHandle:= FileOpen(AOriginFile, fmOpenRead); //xFHandle:= FileCreate(AOriginFile, ofOpenExisting);
  xFileLen:= GetFileSize(xFHandle, nil);
  FileClose(xFHandle);
  if xFileLen <> MAXDWORD then
    begin
      IsOk:= true;
      try
        AfrmProgress.AdvProgressBar1.Value:= 0;
        AfrmProgress.AdvProgressBar1.MaxValue:= xFileLen;
        AfrmProgress.GradientLabel1.Caption:= Format(p2k_fm_pw_text04, [AOriginFile]);
        //##Application.ProcessMessages;
        AfrmProgress.Update;
        xStream:= TFileStream.Create(AOriginFile, fmOpenReadWrite    ); //xStream:= NewReadWriteFileStream(AOriginFile);
      except
        IsOk:= false;
      end;
      if IsOk then
        begin
          if File_Open(ADestFile, '0') then
            begin
              result:= File_Write(AOriginFile, xFileLen, xStream, ADestFile, AfrmProgress);
              result:= File_Close;
            end;
          xStream.Free;
        end;
    end
end;
Rambler's Top100