quinta-feira, 25 de outubro de 2012

Ordenando um IList com VB.Net

Bem estou escrevendo esse post por que vira e meche eu preciso desse mesmo comando e eu nunca guardo  a sintaxe do VB.Net. Por que principalmente não gosto dessa linguagem, prefiro o C# Net.

Segue abaixo o modelo de script de ordenação de IList utilizando LINQ

Imports System.Linq


 Dim sortedEnum As IEnumerable(Of OrdemItem) = _ordem.Itens.OrderBy(Function(m) m.Posicao)
 _ordem.Itens = sortedEnum.ToList()

Agora não esqueço mais.

sexta-feira, 10 de fevereiro de 2012

Trabalhando com Arquivos Texto no VB6


Lendo um Arquivo Txt ou CVS
Bem, esse artigo foi escrito por que vira e mexe eu necessito de algumas funções do vb6 para dar manutenção e me deparo com uma linguagem que nem me recordo como funciona ou quais são suas bibliotecas e classes. Esse artigo aborda a leitura e de arquivo texto, seja ele txt, cvs ou log.

Idealização do Algorítimo
Para ficar mais didático separei o algorítimo em 3 partes, primeiro leitura do arquivo texto, segundo separação do arquivo em linhas e por fim, separação das linhas em colunas. Para criei 3 funções básica e bem comentadas.

Criando meu Projeto
Criei um projeto simples, com um form e adicionei um botão para chamar a ação, em seguida fui no menu “Projetos”, “Referências” e adicionei a referência “Microsoft Scripting Runtime”, essa biblioteca que possibilita a leitura do Arquivo, é semelhante a System.IO da plataforma Net.

Arquivo de Leitura
O Arquivo que irei ler esta no padrão, separado por ponto e vírgula, ok, conforme imagem em anexo.

Solução
Segue abaixo as função criadas e comentadas:

Public Function lerArquivo(arquivo As String) As String
    'DEFINIR O OBJETO DE LEITURa
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
   
    'ABRIR O ARQUIVO ATRAVÉS DO CAMINHO FISICO
    Set arq2 = fso.OpenTextFile("C:\Pastapadrao\" & arquivo, ForReading, True)
   
    'LER OS DADOS DO ARQUIVO
    Dim texto As String
    texto = arq2.ReadAll
    arq2.Close
    'RETORNAR A STRING DO CONTEUDO O ARQUIVO LIDO
    lerArquivo = texto
End Function

Public Sub DividirEmColunas(ByVal arquivo As String)
    'SEPARANDO O ARQUIVO POR LINHAS

   ' vbVrLf ou CHR(13) representam quebra de linha
    Dim LinhasDoArquivo() As String
    LinhasDoArquivo = Split(arquivo, Chr(13)) 
    'PARA QUE A FUNÇÃO SPLIT POSSA FUNCIONAR
    'A DEFINIÇÃO DA VARIAVEL QUE RECEBERÁ SEU VALOR
    'DEVERÁ SER FINALIZADA COM "( )"
    'EXEMPLO SE ELAS ESTIVESSE ASSIM Dim LinhasDoArquivo As String
    'DARIA ERRO
    For i = 0 To UBound(LinhasDoArquivo)
       'CHAMAR FUNCAO PARA LER LINHAS
       TratarLinhas LinhasDoArquivo(i)
    Next
End Sub

Public Sub TratarLinhas(linha As String)
    'DIVIDIR LINHA EM COLUNAS
    Dim colunas() As String
    colunas = Split(linha, ";")
   
    'DEFINIÇÃO DAS COLUNAS
    Dim Codigo As String 'COLUNA 1
    Dim Material As String 'COLUNA 2
    Dim Recurso As String 'COLUNA 3
   
    'ATRIBUIR VALORES
    Codigo = colunas(0)
    Material = colunas(1)
    Recurso = colunas(2)
   
    'APLICAR AÇÃO...
   
End Sub

Bem, em resumo e de forma bem simples é isso!