Pesquisar na Comunidade
Showing results for tags 'ler txt'.
Encontrado 1 registro
-
Olá amigos, Bom dia! Sou novo por aqui e gostaria de saber se estou no caminho certo. Trabalho com o MS visual Studio, C#. Ao utilizar a NFe.ConsultaCadastro() estou criando o TXT com o camando na pasta monitorada e lendo o TXT de retorno, utilizando o código abaixo: No código leio todas as linhas do TXT de retorno e pego separadamente as informações de antes e depois do sinal de "=" public static string[,] Envia_Comando_Acbr(string sComando) { string[,] sRet = new string[2,35]; string sNomeArquivo = @"C:\Methodus\Cupom\Monitor\Envio\ENT.TXT"; string sNomeArquivoRet = @"C:\Methodus\Cupom\Monitor\Retorno\ENT-resp.TXT"; string sAux; bool sLocalizado = false; #region Envia Comando try { using (StreamWriter writer = new StreamWriter(sNomeArquivo)) { writer.Write(sComando);//Cria TXT com a string de comando recebida em sComando } } catch (Exception ex)//Se acontece erro na criação do TXT { sRet[0,0] = "ERRO:"; sRet[1,0] = ex.Message; return sRet; } #endregion #region Retorno //Faz loop enquanto não encontra arquivo de retorno do { //Se não encontra retorno aguarda um instante para sua criação e liberação System.Threading.Thread.Sleep(1000); if (File.Exists(sNomeArquivoRet))//Arquivo encontrado { try { StreamReader sr = new StreamReader(sNomeArquivoRet); using (sr) { int Y = 0; while ((sAux = sr.ReadLine()) != null)//Lê todas as linhas até o final do arquivo { int i = sAux.IndexOf(':');//Pega posição do caractere ":" int itam = sAux.Length - (i + 1); if (i > 0)//Se encontra caractere ":" { sRet[0,Y] = sAux.Substring(0, i);//Carrega lado esquerdo do caractere ":" sRet[1,Y] = sAux.Substring(i + 1, itam);//Carrega Lado dirito do caractere ";" } int z = sAux.IndexOf('=');//Pega posição do caractere "=" int ztam = sAux.Length - (z + 1); if (z > 0)//Se encontra caractere "=" { sRet[0,Y] = sAux.Substring(0, z);//Carrega lado esquerdo do caractere ":" sRet[1,Y] = sAux.Substring(z + 1, ztam);//Carrega Lado dirito do caractere ";" } Y += 1; } } sLocalizado = true;//Marca como verdadeiro que arquivo retorno foi localizado sr.Close(); File.Delete(sNomeArquivoRet);//Deleta arquikvo de retorno } catch (Exception ex)//Em caso de erro na leitura do retorno { sRet[0,0] = "ERRO:"; sRet[1,0] = ex.Message; } } } while (sLocalizado == false); #endregion return sRet;//retorna string com todas as linhas } É pra funcionar assim mesmo, ou tem um jeito mais fácil de fazer? Deixei passar alguma coisa no tratamento dos retornos? Obrigado pela ajuda.