COMO LER APARTIR DA SEGUNDA LINHA EM TXT

PROGRAMADORVB6 17/05/2011 13:29:42
#374165
Olá pessoal.
Estou com dificuldade em que esta rotina me leia o conteudo de um txt apartir da 2ª Linha.
Deixo-vos aqui o código para que me possam ajudar.

 Public Sub CarregarTopicos(ByRef combo As System.Object, ByRef Nome_Ficheiro As String)
Try
Dim file_name As String = ObjFuncoes.GetAppPath & [Ô]\[Ô] & Nome_Ficheiro
Dim stream_reader As New IO.StreamReader(file_name, System.Text.Encoding.Default)
Dim line As String
Dim Linhas As ULong
Linhas = 0
line = stream_reader.ReadLine()
Do While Not (line Is Nothing)
line = line.Trim()
If line.Length > 0 Then
If Linhas > 1 Then
combo.Items.Add(line)
line = stream_reader.ReadLine()
End If
End If
Linhas += 1
Loop
stream_reader.Close()
Catch exc As Exception
[ô] Comunicar erros
MsgBox(exc.Message, MsgBoxStyle.Exclamation, [Ô]Erro ao ler o ficheiro[Ô])
End Try

End Sub


Para chamar a rotina :

CarregarTopicos(Me.Links2, [Ô]topicos.txt[Ô]) 


Grato desde já pela vossa atenção.
Atentamente.
Programadorvb6
TECLA 17/05/2011 20:48:40
#374208
Qual é o resultado do código que postou? O que ocorre?
PEGUDO 17/05/2011 21:04:45
#374211
Resposta escolhida
Cara você pode fazer uma gambiarra
Este é um exemplo de um programa meu onde a primeira linha é: [ResponseResult] mas ela não aparece na MsgBox


Dim Arquivo As New StreamReader([txt-color=#e80000][Ô]C:\RHDSetup.log[Ô][/txt-color])
Dim Contador As Integer = 0
Dim Texto As String = [txt-color=#e80000][Ô][Ô][/txt-color]

While Not Arquivo.EndOfStream
Texto = Arquivo.ReadLine
If Not Contador = 0 Then
MsgBox(Texto)
End If
Contador = 1
End While

Arquivo.Close()


Adpte ao seu código e veja se te ajuda.
PROGRAMADORVB6 18/05/2011 08:40:30
#374239
Olá pessoal amigo.
Após ler as vossas opiniões e seguir alguns dos vossos conselhos fiz assim :

  [ô]Caregar uma ComboBox
[ô]Usar : CarregarTopicos(< Nome da ComboBox,< Nome do Arquivo Txt >)
Public Sub CarregarTopicos(ByRef combo As System.Object, ByRef Nome_Ficheiro As String)
Try
[ô]Redirecciona pela classe objfuncoes indicando o caminho onde se encontra o arquivo Txt
Dim file_name As String = ObjFuncoes.GetAppPath & [Ô]\[Ô] & Nome_Ficheiro
Dim stream_reader As New IO.StreamReader(file_name, System.Text.Encoding.Default) [ô]Lê o texto e configura-o para : Encodig(default)
Dim Ler_LinhaStr As String
Dim Linhas As ULong
Linhas = 0
Ler_LinhaStr = stream_reader.ReadLine()
Do While Not stream_reader.EndOfStream [ô] Efectuar tarefa enquanto não chegar ao fim do texto.
If Linhas > 1 Then [ô]Passa a 1º Linha
combo.Items.Add(Ler_LinhaStr)
End If
Ler_LinhaStr = stream_reader.ReadLine() [ô]Lê conteúdo da Linha seguinte
Linhas += 1 [ô]Incrmenta Linha
Loop
stream_reader.Close() [ô]Fecha abertura de arquivo quando terminado a sua leitura.
Exit Sub
Catch exc As Exception
[ô] Reporta erros se existirem
MsgBox(exc.Message, MsgBoxStyle.Exclamation, [Ô]Erro ao abrir o ficheiro.[Ô])
End Try

End Sub

Nota : Não sei se é a melhor forma de um código Agilizado, mas se souberem de uma forma mais eficaz e rápida é só postarem.
Obrigado!
Agradeço desde já a vossa atenção e principalmente a colaboração em me ajudarem.
Atentamente.
Programadorvb6
PROGRAMADORVB6 18/05/2011 11:54:36
#374257
Olá galera + uma vez.
Para que me entendam melhor a que me refiro deixo aqui o parte do código para que me possam ajudar :
 Imports System.IO
Public Class AberturaSite
[ô][ô][ô] <summary>
[ô][ô][ô] Função para indicar onde se encontra a aplicação do utilizador
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>

Public Function GetAppPath() As String
Dim i As Integer
Dim strAppPath As String
strAppPath = System.Reflection.Assembly.GetExecutingAssembly.Location()
i = strAppPath.Length - 1
Do Until strAppPath.Substring(i, 1) = [Ô]\[Ô]
i = i - 1
Loop
strAppPath = strAppPath.Substring(0, i)
Return strAppPath
End Function


[ô]Caregar uma ComboBox
[ô]Usar : CarregarTopicos(< Nome da ComboBox,< Nome do Arquivo Txt >)
Public Sub CarregarTopicos(ByRef combo As System.Object, ByRef Nome_Ficheiro As String)
Try
[ô]Redirecciona pela classe objfuncoes indicando o caminho onde se encontra o arquivo Txt
Dim file_name As String = GetAppPath & [Ô]\[Ô] & Nome_Ficheiro
Dim stream_reader As New IO.StreamReader(file_name, System.Text.Encoding.Default) [ô]Lê o texto e configura-o para : Encodig(default)
Dim Ler_LinhaStr As String
Dim Linhas As ULong
Linhas = 0
Ler_LinhaStr = stream_reader.ReadLine()
Do While Not stream_reader.EndOfStream
If Linhas > 0 Then [ô]Passa a 1º Linha
combo.Items.Add(Ler_LinhaStr)
End If
Ler_LinhaStr = stream_reader.ReadLine() [ô]Lê conteúdo da Linha seguinte
Linhas += 1 [ô]Incrmenta Linha
Loop
If stream_reader.EndOfStream = True Then
stream_reader.Close() [ô]Fecha abertura de arquivo quando terminado a sua leitura.
Exit Sub
End If
Catch exc As Exception
[ô] Reporta erros se existirem
MsgBox(exc.Message, MsgBoxStyle.Exclamation, [Ô]Erro ao abrir o ficheiro.[Ô])
End Try

End Sub

End Class



Conteúdo do Arquivo : topicos.txt

GERAL - NOTÍCIAS
Fotografia
História e Património
Literatura
Coro de Câmara de Montargil
Artesanato (Novo)
Mercearia de Montargil
Pintura
GymnArt
Astronomia
Ciência e Novas Tecnologias
Eco-Lazer
Futebol
Outras Actividades
Tá-se Bem!
Tá-se Mal!
Ofertas
Pesca Desportiva e de Lazer

Fiz a rotina : [ CarregarTopicos] para carregar para uma ComboBox o texto que se encontra no arquivo : topicos.txt ; menos a 1º linha que não pode ser = a : GERAL - NOTICIAS ; e o que me está a acontecer agora é que a rotina não lê a última linha := Pesca Desportiva e de Lazer
Alguém faz ideia do que pode ser ?
Grato desde já pela vossa atenção.
Atentamente.
ProgramadorVB6
PEGUDO 18/05/2011 12:46:54
#374263
Cara pelo que eu vi seu txt será esta mesma lista mas só que vai acrescentar mais tópicos se eles forem criados no seu site, correto.

Você pode fazer o seguinte:


Dim Arquivo As New StreamReader(Application.StartupPath & [txt-color=#e80000][Ô]    opicos.txt[Ô][/txt-color], System.Text.Encoding.Default)
Dim texto As String

While Not Arquivo.EndOfStream
texto = Arquivo.ReadLine
If Not texto = [txt-color=#e80000][Ô]GERAL - NOTÍCIAS[Ô][/txt-color] Then
ComboBox1.Items.Add(texto)
End If
End While

ComboBox1.SelectedIndex = 0

Arquivo.Close()


Aqui funcionou, só não sei se é isto mesmo que você espera do programa.
Tópico encerrado , respostas não são mais permitidas