Streams (cont)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 12:22

0

¢As Streams podem suportar a busca.
A busca é a consulta e modificação de uma posição actual no interior da stream.
A capacidade de busca depende da stream.
¢O StreamReader  e StreamReader são duas classes para de manipular ficheiros de texto.
¢Veremos de seguida um exemplo.

Imports System
Imports System.IO
Module module1
    Public Sub Main()
        Try
            escrever()
            ' Criar uma intância de uma streamreader para ler dum ficheiro.
            Dim sr As StreamReader = New StreamReader("testfile.txt")
            Dim line As String
            'ler e escrever as linhas do ficheiro até ao fim deste
            Do
                line = sr.ReadLine()
                Console.WriteLine(line)
            Loop Until line Is Nothing
            sr.Close()
Catch E As Exception
            ' mostrar ao utilizador o que correu mal
            Console.WriteLine("The file could not be read:")
            Console.WriteLine(E.Message)
            Console.ReadKey()
        End Try
Public Sub escrever()
        ' Cria uma instância de uma StreamWriter para escrever num ficheiro
        Dim sw As StreamWriter = New StreamWriter("testfile.txt")
        ' Inclui algum texto
        sw.Write("Este é um teste")
        sw.WriteLine("-------------------")
        ' Outros objectos podem ser escritos no ficheiro
        sw.Write("Data : ")
        sw.WriteLine(DateTime.Now)
        sw.Close()
    End Sub
        Console.ReadKey()
    End Sub


Streams

Posted by Paulo Ramos & João Martins | Posted in | Posted on 12:21

0

¢Definição
Uma stream pode ser considerado um  fluxo sequêncial de bytes com um arquivo, um dispositivo de entrada/saida, um processo de comunicação entre dois pontos ou um socket TCP/IP.
¢Usar Streams envolve as seguintes operações fundamentais:
¢Ler a partir de streams. A leitura é a transferência de dados de uma stream numa estrutura de dados como um array de bytes;
¢Escrever para streams. A escrita é a transferência de dados a partir de uma estrutura de dados para uma stream;

Streams

Posted by Paulo Ramos & João Martins | Posted in | Posted on 12:20

0

¢ O conceito de stream permite-nos abstrair-nos dos detalhes da estrutura de dados subjacente e utilizar um conjunto de métodos comum a vários tipos de streams.
¢ Uma stream encapsula uma sequência de dados, frequentemente bytes.
¢ Uma stream possui uma fonte e um destino.
¢ Se um trecho de código escreve numa stream, ele é a fonte deste.
¢ Se um trecho de código de um stream, ele é o destino deste.
¢

EXCEPÇÕES (cont)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 12:20

0

¢No Visual Basic .NET nós podemos criar as nossas próprias excepções.
¢Para isso apenas temos de criar classes que derivem da classe Exception

' Definir a classe que vai tratar o erro específico
Public Class MyParameterOutOfRangeException
Inherits Exception
Public Sub New( )
MyBase.New(“O valor passado em  MyParameter " _
& " está for a de limite. O valor deverá estar entre
& " 10 e 100.")
End Sub
End Class
' ...

' Definição do método que possa disparar a nossa excepção
Public Sub SomeMethod(ByVal MyParameter As Integer)
' Assegurar que o argumento é válido.
If (MyParameter < 10) Or (MyParameter > 100) Then
Throw New MyParameterOutOfRangeException( )
End If
' Corpo do método
' ...
End Sub
Public Sub SomeCaller( )
 Try
SomeMethod(500)
Catch e As MyParameterOutOfRangeException
' ...
 End Try
End Sub

EXCEPÇÕES (cont)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 12:19

0

¢O Visual Basic .NET pode intencionalmente tratar de excepções para indicar erros ou ocorrências invulgares.
¢Vejamos um exemplo em que existe um método que recebe valores nos argumentos,  mas estes têm certos limites.
¢Este controlo é feito com a palavra throw.

Public Sub SomeMethod(ByVal MyParameter As Integer)
' Temos de assegurar que o argumento é válido.
If (MyParameter < 10) Or (MyParameter > 100) Then
Throw New ArgumentOutOfRangeException( )
End If
' Corpo do método
' ...
End Sub

EXCEPÇÕES (cont)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 12:15

0

Dim s As System.IO.Stream =_
System.IO.File.Open("c:\test.txt", System.IO.FileMode.CreateNew)
Try
' Fazemos alguma coisa com o ficheiro.
' ...
Catch e As Exception
' Handle any exceptions.
' ...
Finally
‘A stream deverá ser fechada havendo ou não excepção
s.Close( )
End Try

EXCEPÇÕES (cont)

Posted by Paulo Ramos & João Martins | Posted in | Posted on 12:14

0

¢Por vezes temos de garantir que certa parte do código é executado mesmo que tenha ocorrido uma excepção de forma a não comprometer a nossa aplicação.
¢Por exemplo se um ficheiro for aberto, este tem se ser fechado mesmo que ocorra uma excepção.
¢O bloco Try contém o bloco Finally para este propósito.
¢Este bloco de código é sempre executado haja ou não um excepção.