sexta-feira, 29 de maio de 2015

Delimitador de texto em C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Delimitador
{
    class Program
    {
        static void Main(string[] args)
        {
            string camIni;
            string camFin;
            Console.WriteLine("Insira o caminho do txt de entrada:");
            camIni = Console.ReadLine();
            Console.WriteLine("Insira o caminho onde o txt modificado deve ser criado:");
            camFin = Console.ReadLine();
            string texto = System.IO.File.ReadAllText(@camIni); //Lê o txt como uma única string
            StringBuilder delimitado = new StringBuilder(); //Cria a string manipulável onde o txt será alterado
            delimitado.Append(texto); //Copia a string fixa para a manipulável
            delimitado[0] = ';'; //cria divisões para que a primeira linha fique no mesmo padrão que as debaixo
            delimitado[1] = ';';
            int j, k, l, m; //contadores
            for (int i = 0; i < texto.Length - 3; i++) //percorre a string
            {
                j = i + 1;
                k = j + 1;
                l = k + 1;
                m = l + 1;
 
                if (texto[i] != ' ' && texto[j] == ' ' && texto[k] == ' ' && texto[l] == ' ')//"coloca" o delimitador quando há 3 espaços consecutivos
                {
                    delimitado[j] = ';';
                }
                if (texto[i] == '\n')//troca a quebra de linha por um delimitador
                {
                    delimitado[i] = ';';
                }
            }
            StreamWriter txtdelim = new StreamWriter(camFin, true, Encoding.Unicode);//cria o txt que recebe a string alterada
            txtdelim.Write(delimitado);//preenche o txt
            txtdelim.Close();//salva o arquivo
            System.Console.WriteLine("Arquivo original:\n{0}", texto);//mostra o txt original na tela
            System.Console.WriteLine("Arquivo modificado:\n{0}", delimitado);//mostra o txt alterado na tela

            Console.WriteLine("Pressione qualquer tecla para sair.");//avisa como sair e mantém a tela aberta
            System.Console.ReadKey();
        }
    }
}

Nenhum comentário:

Postar um comentário