DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo Clube Delphi 93 - Streams

Artigo da Revista Clube Delphi Edição 93.

Esse artigo faz parte da revista Clube Delphi Edição 93. Clique aqui para ler todos os artigos desta edição

Avançado

Streams

Implemente compactação, download em múltiplos pacotes e resources em suas aplicações com técnicas avançadas de Streams – Parte 1

 

Aí está o grande pesadelo de grande parte dos programadores Delphi. Muitos, quando ouvem falar em streams, desistem do código na hora! Mas, por que será que causa tanto medo? Talvez, isso se deva ao fato de estarmos trabalhando diretamente com bits e bytes. E isso nos remete aos “malucos escovadores de bits” de décadas atrás. Hoje, temos orientação a objetos, a adoção do garbage collector pelas mais diversas linguagens, dentre outros conceitos e técnicas que deixam nossa vida muito mais fácil. Por isso, desacostumamos com o fato de que, por trás de tudo, ainda temos os mesmos ponteiros, bits e bytes.

Neste artigo, veremos que streams são, na verdade, muito simples e podem ser utilizados por qualquer programador. Todos os que já trabalharam com arrays, listas (TStringList, TObjectList), datasets, ou qualquer tipo de coleção, não devem encontrar dificuldade para utilizar todos os recursos da classe TStream.

Com exemplos práticos e objetivos, abordaremos também dois assuntos extremamente relacionados: Compression e Resources. Veremos que não é necessário fazer o download nenhuma biblioteca para trabalhar com arquivos compactados, uma vez que o Delphi já implementa a sua. Construiremos, passo a passo, uma aplicação para compactação de múltiplos arquivos.

Quanto aos Resources, além do exemplo clássico de embutir uma DLL dentro de seu executável, aprenderemos também, a fundo, a alterar os recursos de outras aplicações, bem como a modificar suas resourcestrings. Enfim, tudo o que há de mais avançado no assunto.

Streams

Imagine um dataset bidirecional, como o TClientDataSet ou o TTable. Porém, em vez de armazenar registros e campos de um banco de dados, armazenaremos bytes, um após o outro, de um arquivo que está no disco. Podemos pegar seu tamanho final, temos a possibilidade de navegar entre os bytes, etc., como se fossem registros.

Streams podem ser entendidos como uma seqüência de bytes na memória. Esses bytes podem ser tanto de um programa que foi carregado, como de uma string qualquer, um arquivo de recurso, ou como uma seqüência de bytes qualquer que desejamos representar. Analisemos código presente na Listagem 1.

 

Listagem 1. Trecho de código utilizando Streams

procedure TForm1.Button1Click(Sender: TObject);

var

  FileStreamIn: TFileStream;

  FileStreamOut: TFileStream;

begin

  FileStreamIn := TFileStream.Create('caminho para arquivo de entrada',

    fmOpenRead);

  FileStreamOut := TFileStream.Create('caminho para arquivo de saída',

    fmCreate);

  "

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Gustavo Chaurais
é Borland Delphi 7 Advanced Certified, Borland Delphi 2005 for Win32 Certified, Borland Delphi 2006 for Win32 Certified e Borland Delphi Instructor Certified. Foi palestrante das três últimas edições da Borland Conference Brasil e de outros grandes eventos nacionais. Além disso, é membro da coordena...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03