none
Editar um parte de um arquivo TXT RRS feed

  • Pergunta

  • pessoal preciso fazer o seguinte tenho uma arquivo TXT com 3 linhas e na segunda linha preciso editar pegando o valor de um text box.

    linha 1

    quantidade 123 (o numero da quantidade preciso editar)

    linha3

    algum pode me sugerir algo ?

    quinta-feira, 13 de agosto de 2015 12:23

Respostas

  • Bom dia Eduardo,

    O interessante a se fazer nesses casos, é predefinir uma leitura do arquivo para um array, e a partir do array você configura o que precisa no text box, com isso, sugiro o seguinte código abaixo para você colocar em um array, como você já sabe jogar um text box, esse exemplo se servirá.

    private string arquivo; 
    private string mensagem; 
    
    private void MetodoParaLerLinhaArquivo() { 
    	List<string> mensagemLinha = new List<string>(); 
    	
    	using (OpenFileDialog openFileDialog = new OpenFileDialog()) {
    		openFileDialog.Title = "xxxxxxxxxo"; openFileDialog.InitialDirectory = @"c:\Program Files"; 
    		
    		//Se ja quiser em abrir em um diretorio especifico 
    		openFileDialog.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"; 
    		openFileDialog.FilterIndex = 2;
    		openFileDialog.RestoreDirectory = true; 
    		
    		if (openFileDialog.ShowDialog() == DialogResult.OK) arquivo = openFileDialog.FileName; 
    	} 
    	
    	if (String.IsNullOrEmpty(arquivo)) { 
    		MessageBox.Show("Arquivo Invalido", "Salvar Como", MessageBoxButtons.OK); 
    	} else { 
    		using (StreamReader texto = new StreamReader(arquivo)) { 
    			while ((mensagem = texto.ReadLine()) != null) { 
    				mensagemLinha.Add(mensagem); 
    			} 
    		} 
    		
    		int registro = mensagemLinha.Count; 
    		
    		//total de linhas do arquivo. 
    		for (int i = 0; i < mensagemLinha.Count; i++) {
    			TextBox textbox1 = new TextBox(); 
    			textbox1.Text += mensagemLinha[i];
    			File.WriteAllText(arquivo, mensagemLinha[i] + "1"); 
    		} 
    	} 
    } 

    Atenciosamente Roberto Alves 

    • Marcado como Resposta Marcos SJ quinta-feira, 13 de agosto de 2015 14:11
    quinta-feira, 13 de agosto de 2015 13:09

Todas as Respostas

  • estou usando o codigo abaixo, apenas preciso definir em qual linha que vou inserir a mensagem, no codigo abaixo ele ta limpando todo o arquivo. 

     Stream saida = File.Open("c:\\Teste\\"+comboBox1.Text, FileMode.Open);
                StreamWriter escritor = new StreamWriter(saida);
                escritor.WriteLine(txtValor.Text);
                escritor.Close();
                saida.Close();

    quinta-feira, 13 de agosto de 2015 12:45
  • Bom dia Eduardo,

    O interessante a se fazer nesses casos, é predefinir uma leitura do arquivo para um array, e a partir do array você configura o que precisa no text box, com isso, sugiro o seguinte código abaixo para você colocar em um array, como você já sabe jogar um text box, esse exemplo se servirá.

    private string arquivo; 
    private string mensagem; 
    
    private void MetodoParaLerLinhaArquivo() { 
    	List<string> mensagemLinha = new List<string>(); 
    	
    	using (OpenFileDialog openFileDialog = new OpenFileDialog()) {
    		openFileDialog.Title = "xxxxxxxxxo"; openFileDialog.InitialDirectory = @"c:\Program Files"; 
    		
    		//Se ja quiser em abrir em um diretorio especifico 
    		openFileDialog.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"; 
    		openFileDialog.FilterIndex = 2;
    		openFileDialog.RestoreDirectory = true; 
    		
    		if (openFileDialog.ShowDialog() == DialogResult.OK) arquivo = openFileDialog.FileName; 
    	} 
    	
    	if (String.IsNullOrEmpty(arquivo)) { 
    		MessageBox.Show("Arquivo Invalido", "Salvar Como", MessageBoxButtons.OK); 
    	} else { 
    		using (StreamReader texto = new StreamReader(arquivo)) { 
    			while ((mensagem = texto.ReadLine()) != null) { 
    				mensagemLinha.Add(mensagem); 
    			} 
    		} 
    		
    		int registro = mensagemLinha.Count; 
    		
    		//total de linhas do arquivo. 
    		for (int i = 0; i < mensagemLinha.Count; i++) {
    			TextBox textbox1 = new TextBox(); 
    			textbox1.Text += mensagemLinha[i];
    			File.WriteAllText(arquivo, mensagemLinha[i] + "1"); 
    		} 
    	} 
    } 

    Atenciosamente Roberto Alves 

    • Marcado como Resposta Marcos SJ quinta-feira, 13 de agosto de 2015 14:11
    quinta-feira, 13 de agosto de 2015 13:09
  • Roberto agradeço desde ja sua resposta, deu certo com a lista, porem nao sei como fazer agora, ou seja.

    tenho um arquivo eu edito ele, e depois disso eu copio para outra pasta (até la tudo 100%)

    mas no arquivo original preciso excluir aquela determinada linha que inseri, estou tentando usar o 

     linhas.RemoveAt(3);

    porem nao estou sabendo onde colocar ele. 

    alguem consegue me ajudar ?

    quinta-feira, 13 de agosto de 2015 16:01
  • PESSOAL resolvi com o cod obrigado a todos
    if (linhas.Count > numeroLinha)
                    linhas.RemoveAt(3);
                 else
                    linhas.Add(textoInserir);
    
                StreamWriter wrtr2 = new StreamWriter(nomeArquivo);
    
                foreach (string strNewLine in linhas)
                {
                    wrtr2.WriteLine(strNewLine);
                }
               
                wrtr2.Close();

    quinta-feira, 13 de agosto de 2015 16:39