Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Naftali

Problemas lendo arquivos txt (VB 2003)

Recommended Posts

Pessoal, é o seguinte, estou fazendo um programinha, e nele eu preciso abrir arquivos texto (.txt), tudo bem, até abrir, ler, mostrar, gravar, eu consigo...Agora o único problema é que ele não reconhece caracteres com acento (é, á, ã, etc...), e não os mostra... Teria como fazer com que o programa exibisse inclusive esses caracteres?Obrigado pela atenção...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você abre o arquivo você tem que definir a codificação do mesmo. Geralmente isso é feito no segundo ou terceiro parâmetro do construtor da classe. Poste o código que você está utilizando que eu posso te indicar o que deve ser mudado.Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dim fluxoTexto as IO.StreamReaderIf IO.file.exists(txt_Caminho.text) then fluxoTexto = New IO.StreamReader TextBox1.text = fluxoTexto.ReadToEnd fluxoTexto.Close() txt_Caminho.Enabled = false btn_Abrir.Enabled = false btn_Arq.Enabled = falseElse MsgBox("Arquivo não existente") txt_Caminho.Focus()End Iftá ae, esse código fica no evento clic do botão abrir....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estão faltando os parâmetros na linha...

 

fluxoTexto = New IO.StreamReader

... mas a idéia seria:

 

fluxoTexto = New IO.StreamReader(txt_Caminho.text, System.Text.Encoding.Default)

Se a codificação ANSI (Default) não servir para o seu caso você pode tentar as outras disponíveis nesta mesma classe (UTF8, Unicode, etc.).

 

Abraços,

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora mais uma pergunta...Quando eu clico em cancelar na caixa de carregar arquivo, tem como eu voltar pro programa que foi clicado em cancelar???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim "voltar pro programa que foi clicado em cancelar"?Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq por mais que o usuário clique em cancelar, o programa executa as linhas subsequentes, de leitura ou escrita do arquivo... Ai eu queria saber se tem como saber se ele clicou no botão cancelar ou não...

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só você olhar o retorno do método ShowDialog(). Exemplo:

 

Dim abrir As New OpenFileDialog		If abrir.ShowDialog() <> DialogResult.Cancel Then			'abrir arquivo		End If

Certo? ;)

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

a um bom tempo atras foi discutido o problema de uma aplicação não conseguir ler acentuação e caracteres especiais de um arquivo txt. Estou com o mesmo problema, porém não consegui ainda resolver. Por favor poderia me ajudar?

 

Segue parte do meu código com declaração das variáveis:

 

Imports System.IO
Imports System.Collections 
Imports System.Text 
Imports System.IO.StreamReader
Imports System.Data
Imports System.Array

Protected Shared sr As System.IO.StreamReader

'Dim fileInfo As New FileInfo(Current.Server.MapPath("Conect.config"))
		Dim fileInfo As New FileInfo(strCaminho)
		If Not fileInfo.Exists Then
			Return ""
		End If

		Dim bytes(fileInfo.Length - 1) As Byte
		Dim input As FileStream = fileInfo.OpenRead()
		input.Read(bytes, 0, bytes.Length)
		input.Close()
		Dim enc As New UTF8Encoding

		Dim strLinha As String = enc.Default.GetString(bytes).ToString()
		Dim strLetra As String
		Dim strSenha As String
		Dim strUser As String
		Dim strInicio As String = enc.Default.GetString(bytes).ToString()

		'Lendo de um arquivo texto 
		Dim strLocal As String = strCaminho
		sr = New StreamReader(strLocal)
		strInicio = sr.ReadLine()
		While Not strInicio Is Nothing
			strLinha = enc.Default.GetString(bytes).ToString()
....
strInicio = sr.ReadLine()
....
 End While
		sr.Close()
		Application.Exit()

Por favor, ja tentei de várias formas e não consegui solucionar.

Desde já sou muito grata.

 

Huayra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi buscar longe esse tópico hein, 2006. Quando for assim é preferível criar um novo tópico Ok. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Referente ao seu problema, você já tentou utilizar outro tipo de codificação, dependedo do tipo que você utilize você pode conseguir ler.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.