Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Biblioteca para operações com Arquivos

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Delphi Biblioteca para operações com Arquivos

    Código PHP:
    unit Arquivos;
     
    interface
     
    uses
    Windows
    DialogsMessagesSysUtilsClassesControlsStdCtrls,FileCtrl,
    GraphicsshellapiPrinters;
     
     
    function 
    fileSize(const FileNameString): LongInt;
    function 
    GetFileDate(TheFileNamestring): string;
    function 
    FileDate(ArquivoString): String;
    function 
    FillDir(Const AMaskstring): TStringList;
    function 
    WinExecAndWait32(FileName:StringVisibility integer):integer;
    Function 
    RecycleBin(sFileName string ) : boolean;
    function 
    NumLinhasArq(Arqtexto:String): integer;
    function 
    FileCopy(source,destString): Boolean;
    function 
    ExtractName(const FilenameString): String;
    function 
    FileTypeName(const aFileString): String;
    Procedure CopyFile( Const sourcefilenametargetfilenameString );
    Procedure ZapFiles(vMasc:String);
    function 
    PrintImage(OrigemString):Boolean;
     
    implementation
     
    function fileSize(const FileNameString): LongInt;
    {
    Retorna o tamanho de um arquivo}
    var
      
    SearchRec TSearchRec;
    begin { !Win32! -> GetFileSize }
      if 
    FindFirst(FileName,faAnyFile,SearchRec)=0
      then Result
    :=SearchRec.Size
      
    else Result:=0;
      
    FindClose(SearchRec);
    end;
     
     
    function 
    GetFileDate(TheFileNamestring): string;
    var
    FHandleinteger;
    begin
    FHandle 
    := FileOpen(TheFileName0);
    result := DateToStr((FileDateToDateTime(FileGetDate(FHandle))));
    FileClose(FHandle);
    end;
     
     
    function 
    FileDate(ArquivoString): String;
    {
    Retorna a data e a hora de um arquivo}
    var
    FHandleinteger;
    begin
    if not fileexists(Arquivothen
      begin
      Result 
    := 'Nome de Arquivo Inválido';
      
    end
    else
      
    begin
      FHandle 
    := FileOpen(Arquivo0);
      try
      
    Result := DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle)));
      finally
      
    FileClose(FHandle);
      
    end;
      
    end;
    end;
     
     
    Procedure ZapFiles(vMasc:String);
    {
    Apaga arquivos usando mascaras tipo: *.zip, *.* }
    Var 
    Dir TsearchRec;
      
    ErroInteger;
    Begin
      Erro 
    := FindFirst(vMasc,faArchive,Dir);
      While 
    Erro do Begin
      DeleteFile
    ExtractFilePAth(vMasc)+Dir.Name );
      
    Erro := FindNext(Dir);
      
    End;
      
    FindClose(Dir);
    End;
     
     
    function 
    FillDir(Const AMaskstring): TStringList;
    {
    Retorna uma TStringlist de todos os arquivos localizados
     no path corrente 
    Esta função trabalha com mascaras}
    var
      
    SearchRec TSearchRec;
      
    intControl integer;
    begin
      Result 
    := TStringList.create;
      
    intControl := FindFirstAMaskfaAnyFileSearchRec );
      if 
    intControl 0 then
      begin
      
    while (intControl 0) do
      
    begin
      Result
    .AddSearchRec.Name );
      
    intControl := FindNextSearchRec );
      
    end;
      
    FindCloseSearchRec );
      
    end;
    end;
     
     
    function 
    WinExecAndWait32(FileName:StringVisibility integer):integer;
    Tenta executar o aplicativo finalizando-o corretamente apos o usoRetorna -1 em caso de falha}
    var
    zAppName:array[0..512of char;
    zCurDir:array[0..255of char;
    WorkDir:String;
    StartupInfo:TStartupInfo;
    ProcessInfo:TProcessInformation;
    begin
    StrPCopy
    (zAppName,FileName);
    GetDir(0,WorkDir);
    StrPCopy(zCurDir,WorkDir);
    FillChar(StartupInfo,Sizeof(StartupInfo),#0);
    StartupInfo.cb := Sizeof(StartupInfo);
    StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
    StartupInfo.wShowWindow := Visibility;
    if 
    not CreateProcess(nil,zAppName,nil,nil,false,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nilnil,StartupInfo,ProcessInfothen
      begin
      Result 
    := -1;
      
    end
    else
      
    begin
      WaitforSingleObject
    (ProcessInfo.hProcess,INFINITE);
      
    GetExitCodeProcess(ProcessInfo.hProcess,Result);
      
    end;
    end;
     
     
    Function 
    RecycleBin(sFileName string ) : boolean;
    // Envia um arquivo para a lixeira ( requer a unit Shellapi.pas)
    var
    fos TSHFileOpStruct;
    Begin
    FillChar
    fosSizeOffos ), );
    With fos do
    begin
    wFunc 
    := FO_DELETE;
    pFrom := PCharsFileName );
    fFlags := FOF_ALLOWUNDO
    or FOF_NOCONFIRMATION
    or FOF_SILENT;
    end;
    Result := (ShFileOperation(fos));
    end;
     
    function 
    NumLinhasArq(Arqtexto:String): integer;
    // Retorna o número de linhas que um arquivo possui
    Var
      
    fTextfile;
      
    linhacont:integer;
    Begin
    linha 
    := 0;
    cont := 0;
    AssignFile(f,Arqtexto);
    Reset(f);
    While 
    not eof(f) Do
      
    begin
      ReadLn
    (f);
      
    Cont := Cont 1;
      
    end;
    Closefile(f);
    result := cont;
    end;
     
     
    function 
    FileCopy(source,destString): Boolean;
    {
    copia um arquivo de um lugar para outroRetornando falso em caso de erro}
    var
    fSrc,fDst,lenInteger;
    sizeLongint;
    bufferpacked array [0..2047of Byte;
    begin
    if source <> dest then
      begin
      fSrc 
    := FileOpen(source,fmOpenRead);
      if 
    fSrc >= 0 then
      begin
      size 
    := FileSeek(fSrc,0,2);
      
    FileSeek(fSrc,0,0);
      
    fDst := FileCreate(dest);
      if 
    fDst >= 0 then
      begin
      
    while size do
      
    begin
      len 
    := FileRead(fSrc,buffer,sizeof(buffer));
      
    FileWrite(fDst,buffer,len);
      
    size := size len;
      
    end;
      
    FileSetDate(fDst,FileGetDate(fSrc));
      
    FileClose(fDst);
      
    FileSetAttr(dest,FileGetAttr(source));
      
    Result := True;
      
    end
      
    else
      
    begin
      Result 
    := False;
      
    end;
      
    FileClose(fSrc);
      
    end;
      
    end;
    end;
     
     
    Procedure CopyFile( Const sourcefilenametargetfilenameString );
    {
    Copia um arquivo de um lugar para outro}
    Var
      
    STTFileStream;
    Begin
      S 
    := TFileStream.CreatesourcefilenamefmOpenRead );
      try
      
    := TFileStream.CreatetargetfilenamefmOpenWrite or fmCreate );
      try
      
    T.CopyFrom(SS.Size ) ;
      finally
      
    T.Free;
      
    end;
      finally
      
    S.Free;
      
    end;
    end;
     
     
    function 
    ExtractName(const FilenameString): String;
    {
    Retorna o nome do Arquivo sem extensão}
    var
    aExt String;
    aPos Integer;
    begin
    aExt 
    := ExtractFileExt(Filename);
    Result := ExtractFileName(Filename);
    if 
    aExt <> '' then
      begin
      aPos 
    := Pos(aExt,Result);
      if 
    aPos 0 then
      begin
      Delete
    (Result,aPos,Length(aExt));
      
    end;
      
    end;
    end;
     
     
    function 
    FileTypeName(const aFileString): String;
    {
    Retorna descrição do tipo do arquivoRequer a unit ShellApi}
    var
      
    aInfoTSHFileInfo;
    begin
      
    if SHGetFileInfo(PChar(aFile),0,aInfo,Sizeof(aInfo),SHGFI_TYPENAME)<>0 then
      Result 
    := StrPas(aInfo.szTypeName)
      else 
    begin
      Result 
    := ExtractFileExt(aFile);
      
    Delete(Result,1,1);
      
    Result := Result +' File';
      
    end;
    end;
     
     
    function 
    PrintImage(OrigemString):Boolean;
    // imprime um bitmap selecionado retornando falso em caso negativo
    // requer as units Graphics e printers declaradas na clausula Uses
    var
    ImagemTBitmap;
    begin
    if fileExists(Origemthen
      begin
      Imagem 
    := TBitmap.Create;
      
    Imagem.LoadFromFile(Origem);
      
    with Printer do
      
    begin
      BeginDoc
    ;
      
    Canvas.Draw((PageWidth Imagem.Widthdiv 2,(PageHeight Imagem.Heightdiv 2,Imagem);
      
    EndDoc;
      
    end;
      
    Imagem.Free;
      
    Result := True;
      
    end
    else
      
    begin
      Result 
    := False;
      
    end;
    end;
     
    end
    ~# Criado pela [IN]Segurança #~

  • Font Size
    #2
    Estava precisando muito de uma unit com várias funções para arquivos, excelente

    Comment


    • Font Size
      #3
      Postado Originalmente por .ArthurPaixão. Ver Post
      Código PHP:
      unit Arquivos;
       
      interface
       
      uses
      Windows
      DialogsMessagesSysUtilsClassesControlsStdCtrls,FileCtrl,
      GraphicsshellapiPrinters;
       
       
      function 
      fileSize(const FileNameString): LongInt;
      function 
      GetFileDate(TheFileNamestring): string;
      function 
      FileDate(ArquivoString): String;
      function 
      FillDir(Const AMaskstring): TStringList;
      function 
      WinExecAndWait32(FileName:StringVisibility integer):integer;
      Function 
      RecycleBin(sFileName string ) : boolean;
      function 
      NumLinhasArq(Arqtexto:String): integer;
      function 
      FileCopy(source,destString): Boolean;
      function 
      ExtractName(const FilenameString): String;
      function 
      FileTypeName(const aFileString): String;
      Procedure CopyFile( Const sourcefilenametargetfilenameString );
      Procedure ZapFiles(vMasc:String);
      function 
      PrintImage(OrigemString):Boolean;
       
      implementation
       
      function fileSize(const FileNameString): LongInt;
      {
      Retorna o tamanho de um arquivo}
      var
        
      SearchRec TSearchRec;
      begin { !Win32! -> GetFileSize }
        if 
      FindFirst(FileName,faAnyFile,SearchRec)=0
        then Result
      :=SearchRec.Size
        
      else Result:=0;
        
      FindClose(SearchRec);
      end;
       
       
      function 
      GetFileDate(TheFileNamestring): string;
      var
      FHandleinteger;
      begin
      FHandle 
      := FileOpen(TheFileName0);
      result := DateToStr((FileDateToDateTime(FileGetDate(FHandle))));
      FileClose(FHandle);
      end;
       
       
      function 
      FileDate(ArquivoString): String;
      {
      Retorna a data e a hora de um arquivo}
      var
      FHandleinteger;
      begin
      if not fileexists(Arquivothen
        begin
        Result 
      := 'Nome de Arquivo Inválido';
        
      end
      else
        
      begin
        FHandle 
      := FileOpen(Arquivo0);
        try
        
      Result := DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle)));
        finally
        
      FileClose(FHandle);
        
      end;
        
      end;
      end;
       
       
      Procedure ZapFiles(vMasc:String);
      {
      Apaga arquivos usando mascaras tipo: *.zip, *.* }
      Var 
      Dir TsearchRec;
        
      ErroInteger;
      Begin
        Erro 
      := FindFirst(vMasc,faArchive,Dir);
        While 
      Erro do Begin
        DeleteFile
      ExtractFilePAth(vMasc)+Dir.Name );
        
      Erro := FindNext(Dir);
        
      End;
        
      FindClose(Dir);
      End;
       
       
      function 
      FillDir(Const AMaskstring): TStringList;
      {
      Retorna uma TStringlist de todos os arquivos localizados
       no path corrente 
      Esta função trabalha com mascaras}
      var
        
      SearchRec TSearchRec;
        
      intControl integer;
      begin
        Result 
      := TStringList.create;
        
      intControl := FindFirstAMaskfaAnyFileSearchRec );
        if 
      intControl 0 then
        begin
        
      while (intControl 0) do
        
      begin
        Result
      .AddSearchRec.Name );
        
      intControl := FindNextSearchRec );
        
      end;
        
      FindCloseSearchRec );
        
      end;
      end;
       
       
      function 
      WinExecAndWait32(FileName:StringVisibility integer):integer;
      Tenta executar o aplicativo finalizando-o corretamente apos o usoRetorna -1 em caso de falha}
      var
      zAppName:array[0..512of char;
      zCurDir:array[0..255of char;
      WorkDir:String;
      StartupInfo:TStartupInfo;
      ProcessInfo:TProcessInformation;
      begin
      StrPCopy
      (zAppName,FileName);
      GetDir(0,WorkDir);
      StrPCopy(zCurDir,WorkDir);
      FillChar(StartupInfo,Sizeof(StartupInfo),#0);
      StartupInfo.cb := Sizeof(StartupInfo);
      StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
      StartupInfo.wShowWindow := Visibility;
      if 
      not CreateProcess(nil,zAppName,nil,nil,false,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nilnil,StartupInfo,ProcessInfothen
        begin
        Result 
      := -1;
        
      end
      else
        
      begin
        WaitforSingleObject
      (ProcessInfo.hProcess,INFINITE);
        
      GetExitCodeProcess(ProcessInfo.hProcess,Result);
        
      end;
      end;
       
       
      Function 
      RecycleBin(sFileName string ) : boolean;
      // Envia um arquivo para a lixeira ( requer a unit Shellapi.pas)
      var
      fos TSHFileOpStruct;
      Begin
      FillChar
      fosSizeOffos ), );
      With fos do
      begin
      wFunc 
      := FO_DELETE;
      pFrom := PCharsFileName );
      fFlags := FOF_ALLOWUNDO
      or FOF_NOCONFIRMATION
      or FOF_SILENT;
      end;
      Result := (ShFileOperation(fos));
      end;
       
      function 
      NumLinhasArq(Arqtexto:String): integer;
      // Retorna o número de linhas que um arquivo possui
      Var
        
      fTextfile;
        
      linhacont:integer;
      Begin
      linha 
      := 0;
      cont := 0;
      AssignFile(f,Arqtexto);
      Reset(f);
      While 
      not eof(f) Do
        
      begin
        ReadLn
      (f);
        
      Cont := Cont 1;
        
      end;
      Closefile(f);
      result := cont;
      end;
       
       
      function 
      FileCopy(source,destString): Boolean;
      {
      copia um arquivo de um lugar para outroRetornando falso em caso de erro}
      var
      fSrc,fDst,lenInteger;
      sizeLongint;
      bufferpacked array [0..2047of Byte;
      begin
      if source <> dest then
        begin
        fSrc 
      := FileOpen(source,fmOpenRead);
        if 
      fSrc >= 0 then
        begin
        size 
      := FileSeek(fSrc,0,2);
        
      FileSeek(fSrc,0,0);
        
      fDst := FileCreate(dest);
        if 
      fDst >= 0 then
        begin
        
      while size do
        
      begin
        len 
      := FileRead(fSrc,buffer,sizeof(buffer));
        
      FileWrite(fDst,buffer,len);
        
      size := size len;
        
      end;
        
      FileSetDate(fDst,FileGetDate(fSrc));
        
      FileClose(fDst);
        
      FileSetAttr(dest,FileGetAttr(source));
        
      Result := True;
        
      end
        
      else
        
      begin
        Result 
      := False;
        
      end;
        
      FileClose(fSrc);
        
      end;
        
      end;
      end;
       
       
      Procedure CopyFile( Const sourcefilenametargetfilenameString );
      {
      Copia um arquivo de um lugar para outro}
      Var
        
      STTFileStream;
      Begin
        S 
      := TFileStream.CreatesourcefilenamefmOpenRead );
        try
        
      := TFileStream.CreatetargetfilenamefmOpenWrite or fmCreate );
        try
        
      T.CopyFrom(SS.Size ) ;
        finally
        
      T.Free;
        
      end;
        finally
        
      S.Free;
        
      end;
      end;
       
       
      function 
      ExtractName(const FilenameString): String;
      {
      Retorna o nome do Arquivo sem extensão}
      var
      aExt String;
      aPos Integer;
      begin
      aExt 
      := ExtractFileExt(Filename);
      Result := ExtractFileName(Filename);
      if 
      aExt <> '' then
        begin
        aPos 
      := Pos(aExt,Result);
        if 
      aPos 0 then
        begin
        Delete
      (Result,aPos,Length(aExt));
        
      end;
        
      end;
      end;
       
       
      function 
      FileTypeName(const aFileString): String;
      {
      Retorna descrição do tipo do arquivoRequer a unit ShellApi}
      var
        
      aInfoTSHFileInfo;
      begin
        
      if SHGetFileInfo(PChar(aFile),0,aInfo,Sizeof(aInfo),SHGFI_TYPENAME)<>0 then
        Result 
      := StrPas(aInfo.szTypeName)
        else 
      begin
        Result 
      := ExtractFileExt(aFile);
        
      Delete(Result,1,1);
        
      Result := Result +' File';
        
      end;
      end;
       
       
      function 
      PrintImage(OrigemString):Boolean;
      // imprime um bitmap selecionado retornando falso em caso negativo
      // requer as units Graphics e printers declaradas na clausula Uses
      var
      ImagemTBitmap;
      begin
      if fileExists(Origemthen
        begin
        Imagem 
      := TBitmap.Create;
        
      Imagem.LoadFromFile(Origem);
        
      with Printer do
        
      begin
        BeginDoc
      ;
        
      Canvas.Draw((PageWidth Imagem.Widthdiv 2,(PageHeight Imagem.Heightdiv 2,Imagem);
        
      EndDoc;
        
      end;
        
      Imagem.Free;
        
      Result := True;
        
      end
      else
        
      begin
        Result 
      := False;
        
      end;
      end;
       
      end

      Viu .ArthurPaixão...onde estão os créditos do criador do POST? Porque não foi você quem criou ele!! Só faltou copiar o "Até a próxima. Abraços++" do final do tópico do cara.

      Só não postarei aqui o Link do lugar que você deu Ctrl+C Ctrl+V pois sei que não pode. Afinal, já ta bom demais uma cagada por Tópico ¬¬

      Comment

      X
      Working...
      X