none
Tabulação RRS feed

  • Pergunta

  • Galera estou com uma situação e preciso de ajuda:

    Tenho um layout no arquivo desta forma:

    nome   |     tel         | sexo 

    joão     |5896587    | M

    mario   | 5874589   | ""

    mateus| 58745896 | ""

    Maria   |4785965    | F

    Joana  |5241452    | ""

    Eu preciso ler a primeira linha e verificar se tem M ou F. Depois disso na segunda linha em diante, se estiver aspas, eu tenho que repetir o M da linha anterior, ou seja, nesse caso repetiria 3 vezes o M

    E assim por diante.

    Como posso fazer isso, pois não estou sabendo pegar o valor da linha anterior...??

    Obrigado


    SirSmart

    quarta-feira, 13 de julho de 2016 00:11

Respostas

  • Boa noite,

    Uma ideia simples será você guardar o registro (sexo) lido válido e até que não encontre outro válido (M ou F), a substituição será pelo gravado.
    Segue um simples exemplo, lembrando que existe inúmeras maneiras de fazer isso. Assim não me atentei ao código e sim na lógica.

    public static void ManipularArquivo()
    {
        string linha;
        string sexo = string.Empty;
        using (StreamReader reader = new StreamReader(@"c:\file\arquivo.txt"))
        {
    
            while ((linha = reader.ReadLine()) != null)
            {
                if (!string.IsNullOrEmpty(linha))
                {
                    string[] colunas = linha.Split('|');
                    if (!string.IsNullOrEmpty(colunas.LastOrDefault().Replace("\"\"", "").Trim()))
                        sexo = colunas.LastOrDefault();
                    using (StreamWriter writer = new StreamWriter(@"c:\file\NovoArquivo.txt", true))
                    {
                        writer.WriteLine(colunas[0] + "|" + colunas[1] + "|" + sexo);
                    }
                }
            }
        }
    }
     

    O presente código grava outro arquivo com "sexo M ou F" de acordo com o que foi explicado na pergunta.

    Qualquer dúvida estou a disposição.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney quarta-feira, 13 de julho de 2016 11:41
    • Marcado como Resposta SirSmart quarta-feira, 13 de julho de 2016 17:01
    quarta-feira, 13 de julho de 2016 00:51