quinta-feira, 16 de setembro de 2010

MCTS-536 - Cap 4 - Colecoes e Generics

o       SortedList
o       Ë igual ao dictionary, porém ordenado
o       Propriedades         
§         capacity: Número de itens alocados atualmente na lista
§         containsKey: Verifica a existência de uma chave
§         containsValue: Verifica a existência de uma valor
§         getByIndex: Pega os valores através do índice
§         getKey: Retorna a chave do índice relativo
§         getKeyList: Retorna a Lista ordenada de chaves
§         getValueList: Retorna a Lista de Valores
§         indexOfKey: Retorna o Índice da chave
§         índexOfValue: Retorna o índice da primeira ocorrência daquele valor.
§         removeAt: Retorna um valor específico da coleção através de um índice
§         setByIndex: Troca o valor no índice
§         trimToSize: Libera o espaço não utilizado
o       Specillized Dictionaries
o       ListDictionary: Útil para pequenas coleções pois otimiza a performance
o       Hybrid Dictionary: É uma ListDictionary que quando necessário cresce para uma HashTable
o       OrderedTable: É uma HashTable que tem acesso pelo índice
o       Specillized Collections (System.collection.Speciallized)
o       Coleções para se trabalhar com bits
§         BitArray:
a.       Redimensionável, porém não dinamicamente
b.      Não suporta add, remove, so aceita os valores true ou false
c.       Em sua criação todos os valores são falsos
d.      Acesso aos valores pelo índice
e.       Opera operações and, or, xor entre colecoe do mesmo tipo, colocando seu resultado em outro array
§         BitArray32:
f.        Ideal para se trabalhar com muitos componentes
g.       Guarda Tudo num inteiro de 32 bits
h.       data: Retorna o valor desse inteiro
i.         createMask: Cria um inteiro deste tipo
j.        bitPacking: Agrupa vários números no valor de um inteiro
o       Coleções para se trabalhar com strings
§         Denominado StringCollection, nada mais é que que um ArrayList de strings
§         Quando adicionados itens não strings dá erro
§         Não necessita a transformação para string
§         StringDictionary: É uma HashTable para strings, tanto para os indices quanto para os valores.
§         CollectionUtil: É uma biblioteca do framework, que tem entre seus métodos, o createInsensitiveHashTable, e o createCaseInsensitiveSortedList, que tratam caixas altas e baixas.
§         StringComparer: Compara as strings independente da informação cultural
o        NameValueCollection (System.collection.Specillized) NameValueCollection): PArece a String Dictionary, mas é possível de se acessar pelo indice e de se ter chaves com mais de um valor, adicionadas utilizando o commando add.
o       GenericsCollection
§         Generics: São tipos criados para receberem como parâmetro qualquer tipo. Esse parâmetro e declarado da forma <varariável>, e na hora de instanciar um destes objetos é necessário informar o tipo.
§         Todas as coleções tem seu equivalente me generics
a.       ArrayList – List <>
b.      Queue – Queue<>
c.       Stack – Stack<>
d.      HashTable-Dictionary<>
e.       SortedList – SortedList<>
f.        ListDictionary – Dictionary<>
g.       HybridDictionary – Dictionary<>
h.       OrderedDictionary – Dictionary<>
i.         SortedDictionary – Dictionary<>
j.        NameValueCollection – Dictionary<>
k.      DictionaryEntry – NameValuePair<>
l.         StringCollection – List<String>
m.     StringCollection – Dictionary<String>
n.       Não tem relação - LinkedList<>

·        List<> -
o       Generics Delegate: São declarados daqui seguinte forma:
§         Public int Comparison<TipoGenerico> (Tx,Ty)
·        Queue<>, Stack <> -  Como os originais, só que se limitam aos tipos declarados
·        GenericsDictionary<>: Diferencia-se do original somente pelo tipo de reotrno, antes era DictionaryEntry, agora KeyValuePair, resguardando a declaraco dos parâmetros.
·        SortedList<>, SortedDictionary<> : Igual ao original
·        LinkedList: Tem a mesma idéia dos ponteiro, com apontadores e tal
o       Propriedades:
§         Count: Numero de componentes
§         First: Primeiro nó
§         Last: último nó
o       Métodos
§         addAfter: Coloca depois de um certo nó
§         addBefore: Coloca antes de um nó
§         addFirst: Coloca no Inicio
§         addLast: Coloca no Fim
§         clear: Apaga Tudo
§         contains: Verifica a existência
§         copyTo: Copia tudo prum array     
§         find: Acha o primeiro contendo o valor
§         findLast: Acha o ultimo nó contendo o valor
§         remove:  Remove pelo conteúdo ou pelo índice
§         removeFirst: Remove o primeiro
§         removeLast: Remove o último
§         linkedNode: É cada item da LinkedList
·        list: A lista de onde pertence o nó
·        next: O próximo nó da lista
·        previous: O nó anterior
·        value: O valor do nó
§         LinkedList: É uma composição de linked nodes

quarta-feira, 15 de setembro de 2010

Collections (System.Collections)

Tipos de coleção

o       ArrayList: Redimensionável, baseado em índices, aceita mais de um tipo
o       SortedList: Composta por nome/valor de objetos, está ordenada pelo valor(chave). Pode ser acessado pela chave ou pelo indice
o       Queue: Fila
o       Stack: Pilha
o       HashTable:Composta por Nome/Valor de objetos, pesquisa pelo valor hash da chave. Boa para grande massa de dados
o       BitArray: Coleção de valores booelanos
o       StringCollection: Uma coleção de strings
o       StringDictionary: É uma HashTable que somente aceita strings.
o       ListDictionary: Coleção, não ordenada, localizável pela chave, boa para pequena massa de dados
o       HybridDictionary: É uma listDictionary quando pequena e uma HashTable quando grande
o       NameValueCollection: Coleção de nome/valor de strings que permite a pesquisa pelo nome ou pelo valor. Ambos nome e valor podem ser strings
o       Métodos
o       add:Adiciona itens a coleção
o       addRange:Adiciona o conteúdo completo de uma coleção em outra
o       insert: Insere em uma posição específica
o       remove:Retira um objeto da coleção
o       removeAt: Retira acessando pleo índice
o       clear: Apaga tudo
o       indexOf: Diz o índice de um item
o       contains: Testa se um objeto existe na collection
o       count: O total de itens de uma coleção
o       getEnumerator:Associa a variavel do tipo IEnumerator a colecao.
o       sort: ordena uma coleção
o       IEnumerator
o       current: É o ítem corrent
o       moveNext: Move para o próximo
o       reset:Volta o cursor para o inicio do objeto
o       []: indicação de índices : Acessa para leitura e modificação de uma posição
o       O insert difere do add, por que o insert usa o índice e substitui o conteúdo na posição e o add, adiciona no fim da coleção
o       ICollection(Herda de IEnumerable)
o       Métodos
§         Count: número de elementos
§         isSynchronized: Indicador de thread segura
§         syncRoot: Objeto para sincronizar a collection
§         copyTo: Copia para um array
o       IList(Herda de ICollection)
o       Serve apenas para coleções simples
o       Métodos:
§         isFixedSize: Indica se a collection pode ser redimensionada
§         isReadOnly: Se é somente leitura
o       Propriedades
§         Item: Item específico da colection
o       A classe Lista (Queue)
o       Métodos:
§         Count: Número de componentes
§         dequeue: Pop da fila
§         enqueue:Push na fila
§         peek: pega o primeiro sem remove-lo
o       A classe Pilha (Stack)
o       Métodos
§         Count: conta o numero de itens
§         Push: coloca na pilha
§         Pop: retira da pilha
§         Peek: olha um item da pilha
o       Dictionaries
o       São coleções para armazena a dupla chave/valores e procurar pelos chaves
o       Geralmente são declarados como HashTable
o       Os tipos guardados dentro de um dictionary são chamados dictionary entry
o       A propriedade value acessa o conteúdo de um dictionary
o       Não aceesível pelo índice
o       Implementa a interface, IEqualityComparer
o       Métodos
§         containsKey: Verifica a existência da chave
§         containsValue: Verifica a existência do valor
o       IDictionary (Herda de ICollection)
§          Todas os dicionários suportam essa interface
§         Propriedades
a.       isFixedSize: Redimensionavel
b.      isReadOnly: Alterável
c.       item: ItemEspecifico da tabela
d.      keys:Lista de chaves
e.       values: Lista de Valores
§         Métodos
f.        add: Adiciona o par chave, valor
g.       clear: Limpa
h.       contains: verifica a existência da chave
i.         getEnumerator: Retorna um enum para ieracao com o dictionary
j.        remove:  remove uma chave

terça-feira, 14 de setembro de 2010

Capitulo 2 - Expressoes Regulares

  • A classe Regex
    • isMatch: Compara a string com sua regra
    • Sempre precedida por @
    • WildCards: são caracteres especiais como *,+,? Que facilitam a procura pelo texto desejado
    • Alguns códigos importantes
      • ^ - inicio de string
      • $ - fim da string
      • \d – somente nunericos
      • {n} – quantidade de caracteres
      • \b – o mesmo que *palavra
      • \B – o mesmo que palavra*
      • * - com na procura por arquivos
      • + - parece com  * mas tem que aparecer uma vez
      • ? – como na procura por arquivos
      • [i,j] – range de valores numéricos
      • \s – espaço vazios
      • \S – espaços ocupados
      • | - ou
      • \k – compara o posterior com o anterior
      • \w – 1 caracter
      • <char> - guarda a expressão na variável char
    • As expressões regulares aceitam um formato em seu construtor através do enum RegexOption
    • O Enum RegexOption
      • None:nada
      • IgnoreCase: Não é case-sensitive
      • Multiline:^ e $ significam o  inicio e o fim da linha
      • ExplicitCapture: Só pega o que foi explicitado, através dos <>
      • Compilable: Será compilada gerando um assembly
      • Singleline:Faz o ponto (.), valer qualquer coisa
      • IgnorePatternWhiteSpace: Exclui o espaço em branco
      • RighttoLeft: Le da direita para a esquerda
      • CulturalInvariant: Ignora a cultura
    • Extraindo as informações necessárias
      • Utilizando-se as expressões regulares entre parênteses
      • O método Regex.match
      • Acessando os dados através do método Match.Groups
    • Trocando caracteres utilizados utilizando expressões regulares
      • Captura com ?<char> e troca com $<char>

segunda-feira, 13 de setembro de 2010

Capítulo 2 - I/O - Contuniacao

A classe MemoryStream(Herdada de Stream)

    • Propriedade
      • Capacity: Número de bytes da memória
    • Métodos
      • getBuffer: Recupera do buffer os bytes que ainda não foram persistidos
      • toArray: Tranforma num array de bytes
      • writeTo: Escreve no MemoryStream o conteúdo de um stream.
A classe BufferedStream(Herdada de Stream)
    • Nao existem métodos nem propriedades além da classe de onde foi herdada. Existe simplesmente para diferenciar o acesso ao buffer.
A classe GZipStream (System.IO.Compression)
    • Classe de compactação de arquivos limitada a 4Gb
    • Propriedades
      • BaseStream: O stream sendo utilizado
A classe DeflateStream(System.IO.Compression)
    • Diferencia do Gzip apenas pelo algoritmo usado, os métodos e propriedades são diferentes.
A class e Isolated Storage (Namespace: System.IO.IsolatedStorage)
    • Trata o arquivo que de alguma maneira devem estar separado dos outros, por segurança ou por níveis de perfil, etc.
    • Métodos
      • getMachineStoreForApplication: Retorna um local na máquina para armazenamento seguro dos arquivos
      • getMachineStoreForAssembly: Retorna um local na máquina para armazenamento seguro para os assemblies
      • getMAchineStoreForDomain: Retorna um local na máquina para armazenamento seguro para o AppDomain, que é o local onde a aplicação vai rodar.
      • getStore: retorna o nivel de “isolamento” do arquivo, baseado no enum IsolatedStorageScope
      • getUserStoreForApplication: Retorna um local no perfil do usuario para armazenamento seguro dos arquivos
      • getUserStoreForAssembly: Retorna um local perfil do usuario para armazenamento seguro para os assemblies
      • getUserStoreForDomain: Retorna um local perfil do usuario para armazenamento seguro para o AppDomain, que é o local onde a aplicação vai rodar.
      • close:fecha
      • createDirectory: Cria um diretório
      • deleteDirectory: apaga um diretório
      • deleteFile: Apaga um arquivo
      • getDirectoryNames:Lista de diretórios do storage, que combinam com a mascara
      • getFilesName: Lista de arquiivos do storage, que combinam com a mascara
      • remove: Remove o storage
    • Propriedades
      • applicationIdentity: Retorna qual aplicação faz uso do determinado storage
      • assemblyIdentity: Retorna qula assembly faz uso daquele storage
      • currentSize: Tamanho de um determinado assembly
      • domainIdentity: Retorna qual appDomain faz parte daquele storage
      • maximumSize: O tamanho maximo de um Storage
      • scope: retorna o tipo do isolamento
    • Nessa abordagem (Isolada), os diretórios precisam criados para ser utilizados. Um arquivo não pode ter sua existência questionada, o único modo é procurar por seu nome na lista de arquivos.
IsolatedFileStream
    • Funciona como qualquer outro stream
  • O enum IsolatedStorageScope
    • User: Isolado pelo usuario
    • Domain: Isolado pelo domínio da aplicação
    • Assembly: Isolado pela identidade do assembly
    • Roaming: feito em um local que pode “roam”.
    •  Machine: Isolado pela máquina
    • Application: Isolado pela aplicacao

quinta-feira, 9 de setembro de 2010

Capítulo 2 - I/O - Contuniacao

  • A classe Path
    • Métodos
      • ChangeExtension: Troca a extensão de um arquivo. O caminho deste arquivo deve ser informado
      • Combine: Combina strings de caminhos
      • GetDirectoryName: O nome do diretório deste caminho.
      • GetExtension: A extensão do arquivo do caminho
      • GetFileName: O nome do arquivo do caminho
      • GetFileNameWithoutExtension: O nome do arquivo do caminho sem a extensao
      • GetFullPath: O caminho completo de um caminho relativo
      • GetPathRoot:A raiz de um caminho
      • GetRandomFileName: Nome um arquivo ou pasta escolhido randomicamente
      • GetTempFileName: Gera um arquivo Temporário e retorna o caminho
      • HasExtension: Verifica se o arquivo tem extensão
      • IORootPathed:Verefica se o caminho tem raiz
  • A classe FileSystemWatcher
    • Tem objetivo de escutar os eventos do filesystem. Qualquer alteração é notificada
    • Métodos
      • EnableRaisingEvents: Permite o watch disparar ou não o evento. Usado para ativar ou desativar o monitoramento de arquivos
      • Filter: Indicas quais mudanças do filesystem devem ser notificadas
      • IncludeSubDirectories: Inclui subdiretórios no monitoramento
      • NotifyChanges:
      • Path:Caminho para se monitorar
      • WaitForChanged:Monitora as mudanças e retorna uma estrutura com todas as mudanças
    • Eventos
      • Changed
      • Created
      • Delete
      • Renamed
  • A Classe Stream
    • Métodos
      • canRead: Legível
      • canSeek: Procurável
      • canTimeOut: Limitada por tempo
      • canWrite: Escrevível
      • close: fecha
      • Flush: Limpa os buffers relativo aquele stream, ou copia os stream pendentes nos seus destinos
      • readByte: Lê um byte e passa pro próximo
      • Seek: Posiciona o cursos no Stream
      • setLenght: Aumenta ou diminue o tamanho do Stream
      • write: Escreve
      • writeByte: Escreve um byte
      • read: Le uma quantidade definida de bytes.
    • Propriedades
      • Length: Tamanho em bytes do Steam
      • Position: Posição dentro do Stream
      • readTimeOut: Tempo para leitura
      • writeTimeOut: Tempo para escrita
    • Herdam de Stream
      • FileStream
      • MemoryStream
      • CryptoStream
      • NetworkStream
      • GZipStream
  • A classe File
    • Métodos
      • appendAllText: Adiciona um string a um arquivo, se esse arquivo não existir, cria o arquivo
      • appendText:: Retorna um streamWriter para ser incluído no arquivo
      • copy: Copia o aquivo para um arquivo novo, este arquivo não pode existir
      • create: Cria um arquivo e retorna no formato fileStream
      • createText: Cria um streamWriter, para escrever no arquivo
      • move: move um arquivo
      • open: Abre retornando no formato fileStream
      • openRead: Abre o arquivo e retorna o fileStream para leitura
      • openText: Abre e retorna um streamReader
      • openWriter: Abre o arquivo e retorna o fileStream para escrita
      • readAllBytes: Abre e fecha retornando um array de bytes
      • readAllLines: Abre e fecha retornando um array de strings
      • writeAllBytes: Abre e fecha para escrever um array de bytes
      • writeAllLines: Abre e fecha para escrever um array de strings
      • writeAllText: Abre e fecha para escrever o conteúdo de uma string
  • A classe Directory
    • Métodos
      • createDirectory: Cria toda a árvore especificada por um caminho
      • delete: Apaga um diretório especificado
      • exists: Verifica a existência
      • getCreationTime: Retorna a data de criação
      • getCurrentDirectory: Retorna o diretório corrente do objeto
      • getDirectories: retorna a lsita de subdiretórios
      • getDirectoriyRoot: Retorna a raiz do diretório desejado
      • getFiles: Nomes dos arquivos de um diretório.
      • getFileSystemEntries: Nomes dos arquivos e subdiretórios
      • getLastAccessTime: Horário da última vez em que o diretório foi acessado
      • getLastWriteTime: Horário da última vez que o arquivo foi escrito
      • getLogicalDrive: Lista de drivers da máquina
      • getParent: O diretório pai
      • move: Move o diretório e seus arquivos
      • setCreationTime: atualiza a a hora de criação
      • setCurrentDirectory: Muda o diretório de trabalho para o diretório desejado
      • setLastAccessTime: Atualiza a hora do último acesso
      • setLastWriteTime: atualiza o horário de última escrita
  • O Enum FileAccess
    • read: Escreve
    • write: Le
    • readWriter: Escreve e Le
  • O Enum FileMode
    • append: Abre o arquivo e posiciona o cursor no fim dele, se o arquivo não existir, cria-o
    • create: Cria, se já existir sobrescreve
    • createNew: Cria, se já existir, dá erro
    • open: Abre, se não existir da erro
    • openOrCreate: Abre, se não existir cria
    • truncate: Apaga o arquivo todo.
  • A classe FileStream (Herdada de Stream)
    • Métodos
      • handle: Resultado booleano se está em uso ou não
      • lock: Impede a alteração do stream
      • unlock: Habilita a alteração do Stream
  • A classe StreamReader
    • Métodos
      • baseStream: Retorna o Stream que está sendo lido
      • currentEncoding: retorna a codificação do stream
      • endOfStream: Verifica se já está no fim do stream
      • close:Fecha
      • peek: O próximo caracter sem mexer no stream
      • read: Le os caracteres
      • readBlock: Le o próximo bloco de caracteres
      • readLine: Le a próxima linha de caracteres
      • readToEnd: Le ate o fim do arquivo
  • A classe StreamWriter
    • Métodos
      • autoFlush: Informa ao arquivo se as alterações feitas serão repassadas
      • baseStream: Retorna o Stream que está sendo lido
      • encoding: codificacao do arquivo
      • newLine: Quebra de linha
      • close: Fecha
      • write: Escreve
      • writeLine: Escreve linha
  • Outras classes afins
    • StringReader e String Writer: Le e escreve na string
    • StringBuilder: Escreve na String como se fosse um arquivo
    • BinaryReader e BinaryWriter: O mesmo do string só que para binário

quarta-feira, 1 de setembro de 2010

MCTS-536 - Capítulo 2 - I/O

MCTS-536 - I/O (Namespace System.IO)

  • Todas as classes estão dentro do assembly System.IO
  • Principais classes que herdam de FileSystemInfo:
    • FileInfo: Trata de arquivos
    • DirectoryInfo: Trata Diretórios
    • PrivateInfo: Trata de Drivers
  • A classe FileSystemInfo
    • Propriedades
      • Atributes: Atribui ou recupera os atributos do arquivo ou diretório
      • Creation Time: Atribui ou recupera a data de criação do arquivo ou diretório.
      • Exists: Testa a existência
      • Extension: Recupera a extesão do arquivo.
      • Fullname: Recupera o caminho do arquivo
      • LastAccessTime: Atribui ou recupera a hora do último acesso ao arquivo ou diretório.
      • LastWriteTime: Atribui ou recupera a hora da última escrita ao arquivo ou diretório.
      • Name: Recupera o nome do arquivo + nome do diretório pai
    • Métodos do FileSystemInfo
      • Delete: Apaga o arquivo ou diretório
      • Refresh: Atualiza
  • A classe FileInfo
    • Manipula Arquivos
    • Seu construtor tem a localização do arquivo com parametro
    • Propriedades
      • Directory: Pega o DirectoryInfo, que representa o diretório onde está o arquivo
      • DirectoryName: Nome do diretório onde está o arquivo
      • isReadOnly: Atribui ou recupera o valor somente leitura de um arquivo
      • Lenght: O tamanho do arquivo em bytes
    • Métodos
      • AppendText: Adiciona um texto ao arquivo via Stream
      • copyTo: Copia um arquivo para um destino especifico
      • Create: Cria um arquivo apartir de uma variavel fileinfo.
      • createText:Cria um novo arquivo para ser escrito
      • Decrypt: Tira Encriptação
      • Encrypt: Criptografa
      • Moveto:Move para um destino especifico
      • Open: Abre com o privilégios desejados e para uma ação específica
      •  OpenRead:Abre somente para leitura
      • OpenText: Abre e retorna um stream para leitura
      • OpenWrite: Abre apenas para escrita
      • Replace: Troca um arquivo por outro arquivo.
  • A classe DirectoryInfo
    • Propriedades
      • Parent: Informações sobre o diretório Pai
      • Root:Uma string representando a raiz
    • Métodos
      • Create: Cria um diretório
      • CreateSubDirectory:Cria um subdiretório.
      • GetDirectories: Array que representa os subdiretórios
      • GetFile: Array do tipo fileinfo, com todos os arquivos
      • GetFileSystemInfo: Array do tipo FileSystemInfo representando todos os arquivos e subdiretórios.
  • A classe DriveInfoClass
    • Propriedade
      • AvaiableFreeSpace: Espaço disponível
      • DriveFormat: NTFS ou FAT32
      • DriveType: O tipo do Drive, retorna um enum DriveType
        • DriveType
          • CD-ROM
          • Fixed
          • Network
          • NoRootDirectory
          • RAM
          • Removable
          • Unknown