Ir para conteúdo

Arquivado

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

c.o.souza

StreamWriter

Recommended Posts

Olá pessoal,

estou tentando gerar um arquivo TXT com informações que vem do banco, porém não está escrevendo, vocês poderiam me dar uma força ?

 

Obs.: Debugando a impressão que tive é que o problema está no argumento do método AppendText

Segue o código.

 

// recuperando o caminho do arquivo do Web.Config
string strDisp = WebConfigurationManager.AppSettings["informacoes"].ToString();

// Tags no Web Config
  <appSettings>
	<add key="informacoes" value="C:\Testando\INFORMACOES.TXT"/>
  </appSettings>


//Laço na DataReader

while (dr.Read())
						{
							dados = dr[iId].ToString()+";";
							dados += dr[iTempoTotal].ToString().Trim()+";";
							dados += dr[iServico].ToString().Trim().Replace(".", ",") + ";";
							dados += dr[iProduto].ToString().Trim().Replace(".", ",");

							for (contDin = 2; contDin < dr.FieldCount - 3; contDin++)
							{
								if (dr[contDin].ToString().Replace(".", ",") == "0,000")
								{
									dados += "0;";
								}
								  else
								{

									dados += ";" + dr[contDin].ToString().Replace(".", ",");
								}
								   
							}

// Escrevendo arquivo
using (StreamWriter swInf = File.AppendText(StrNovoArq.ToString())) // Já tentei também sem o "ToString()"
swInf.WriteLine(dados.Substring(0, dados.Length - 1).ToString());

Valeu muito obrigado !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Souza!

 

estive analisando seu código, e percebi que amenos que as variáveis idTempoTotal, iId, etc... passadas pro reader forem strings você não encontrará nada no reader e por isso não conseguirá gravar nada.

 

reescrevi o código... e aparentemente o erro não está no stream:

 

using (IDataReader dr = cmd.ExecuteReader())
{
	FileInfo file = new FileInfo(@"C:\arquivo.txt");
	while (dr.Read())
	{
		using (StreamWriter stream = file.AppendText())
		{
			string formato = "{0};{1};{2};{3};{4}";
			stream.Write(string.Format(formato,
				dr["iId"].ToString(),
				dr["iTempoTotal"].ToString(),
				dr["iServico"].ToString(),
				dr["iProduto"].ToString()).Trim().Replace(".", ","));
		}
	}
}

Espero ter ajudado!

 

Souza!

 

Você também tem uma função para formatar um campo aparentemente numérico... da mais detalhes que eu posso te passar umas dicas para formatar números.. :')

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.