Ir para conteúdo

POWERED BY:

Arquivado

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

Rcast

array de char[] para string, cortar os caracters estranhos.

Recommended Posts

Eai beleza?

To tendo um probleminha aqui.

Eu declaro um array de chars buffer1 de tamanho de 200 caracteres para ler um pedaço de um arquivo de texto, quando eu transformo o array de char pra string ele adiciona junto os outros caracteres até 200, pois era o tamanho do array.

Tem alguma forma dele limpar o array ou o string quando encontrar aqueles caracteres estranhos de char vazio?

segue o código que estou usando:

 

StreamReader file = File.OpenText("c:\\b.txt"); // abre arquivo de texto
				char[] buffer1 = new char[20]; // declara o buffer de leitura
				file.BaseStream.Position = 0; // seta a posicao para o 1o caractere do texto
				file.Read(buffer1, 0, 10); // le do caractere 1 ao 10
				string linhax = new String(buffer1); // passa o buffer para o string linhax
				label1.text = linhax;  // mostra na label

 

O meu problema maior é que o buffer vai ter tamanho variado dependendo do que encontrar no arquivo de texto..

Agradeço se alguem puder ajudar ae..

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode ser um arquivo de texto só com a palavra "imasters" na 1a linha. ele lê os 8 caracteres do imasters e coloca dois [?] [?] nas outras duas posições do buffer (pois o buffer foi declarado com 20). Quando eu passo pra string vem um string de 10 escrito "imasters[?][?]". Será que tem alguma forma de cortar os caracteres nulos, quer dizer se é que isto significa nulo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara que coisa estranha.

Olha o que aparece no meu label: imasters��

e se eu mandar ler 20 caracteres e só tiver 8, ele sempre completa o resto com ��������.

que caractere eh esse? alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode ser alguma coisa com o encoding de UTF8?

aparentemente ele inicializa o buffer inteiro com caracteres '\0' e quando eu mando converter pra string ele joga esses caracteres que estão sobrando pra dentro do string, mostrando o caractere : � .

Alguem pode ajudar? ta complicado aqui e tenho que terminar p/ essa semana :/

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta usar o StringBuilder, ou uma List de Strings.

Outra coisa, se esses caracteres do fim forem uma quebra de linha, você pode utilizar o Enviroment.NewLine para pular linha.

 

Espero ter ajudado

 

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.