Ir para conteúdo
Matheus Rocha

Como tratar os dados de um arquivo .txt

Recommended Posts

Galera bom dia !

Me chamo matheus e estou com muita dificuldade na solução de um algorítimo que foi imposto e designado para eu solucionar.

O que acontece, Eu tenho um arquivo .txt onde ele tem diversas informações.

Ex Real:

1201604/08/2017 11:37:31Todas                                   MTTT T06/07/201703/08/2017000000000000000000000000000000                                                  
2ANGRA DOS REIS                   0000000014
385178911J39164256000170VIA SAT COMERCIAL ELETRONICA LTDA ME                            NNS07/07/2017 08:28:33 DN          NNNNNNN000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000S
5SSSSN000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000
6                                                                JOSÉ JORGE MARQUES                                              24  33652762SIDNEI COSTA VIEIRA                                             24  33652762
383067241J29355260000242TRIUNFO LOGISTICA LTDA                                          NNS17/07/2017 16:20:05 DN          NNNNNNN000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000S
5NNSNN000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000
6                        wilson@wleme.com                        JORGE RODRIGUES DA SILVA                                        21  21788800WILSON ROBERTO LEME                                             21  21788800
378884096J11112293000204VALE DO CAFE AUTO POSTO LTDA                                    NRS17/07/2017 16:22:44 DN          SNSNNNN000000558482002000000000000000000000000000000000000914863662000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000558482002000000914863662000000000000000000000000000000000000000000000000000000000000000000000711192000000000000000000000000000000000000000000000000000355670468       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000355670468S
4N00037000000000711192
5NNNNN000000087369776000000000000000000000000000000000000000000000N000000083505478000000000000000000000000000000000000000000000N000000074110649000000000000000000000000000000000000000000000N000000075302716000000000000000000000000000000000000000000000N000000068143708000000000000000000000000000000000000000000000N000000067633557000000000000000000000000000000000000000000000N000000074329043000000000000000000000000000000000000000000000N000000077872727000000000000000000000000000000000000000000000N000000075293488000000000000000000000000000000000000000000000N000000078980667000000000000000000000000000000000000000000000N000000063227581000000000000000000000000000000000000000000000N000000088383080000000000000000000000000000000000000000000000
6                                                                HAROLDO DA SILVA MANCEBO                                        24  24534614DANIEL MARIA DINIZ                                              24  24533886
385454455J00468285000190TRANZIRAN TRANSPORTES LTDA                                      NRS19/07/2017 11:01:58 DN          SNNSNNN000029414831790000000701696111000000000000000000044743461671000001941418951000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030116527901000046684880622000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040394000000001040394       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040394N
4N00026000000001040394
379050008J11921635000148GB segurança ELETRONICA DE ANGRA LTDA                           NNS20/07/2017 16:17:50 DN          NNNNNNN000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000S
5SSSSN000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000N000000000000000000000000000000000000000000000000000000000000

o mesmo quer que eu faça um programa para ler esse conteúdo do arquivo txt a cima linha por linha e formate o mesmo gravando em um outro txt mas o formato é linha continua até o 2 que é o primeiro caractere


 

Resumindo é um programa para eu pegar um arquivo já pronto e transformar ele como demonstrado a cima salvando em outro txt. Só que estou encontrando muitas dificuldades pra isso, eu consigo ler o arquivo e criar o local de salvamento com os dados, só que na formatação não consigo jogar a lógica na qual consiste em: O programa tem que na primeira linha identificar que é 2 sempre que tiver 2 no inicio da linha ele vai dar uma quebra de linha e continuar escrevendo até encontrar novamente o 2 no inicio da linha. 

 

OBS: o meu programa ta 100% funcional até então, mas eu não consigo jogar uma logica para o citado a cima. ele ler e grava em outro arquivo como já está em linha continua. só tenho que criar uma logica para poder fazer ele ter quebra de linha sempre que o caractere o primeiro caractere da linha for 2.

 

MEU CÓDIGO: 

 

#include <iostream>
#include <fstream>
#include <locale>
using namespace std;

int main() {

    setlocale(LC_ALL, "Portuguese");

    ifstream arquivo;
    ofstream arquivox;
    string linha;

    arquivo.open("Declan.txt"); // abre arquivo p leitura
    arquivox.open("Teste.txt"); // abre arquivo p escrita

    if (arquivo.is_open() && arquivox.is_open()) {
        while (getline(arquivo, linha)) {
            cout << linha; // lê o arquivo linha a linha
            arquivox << linha; // escreve no arquivo 
            system("pause");
        }
        arquivo.close();
        arquivox.close();
    } else {
        cout << "Não foi possivel abrir o arquivo" << endl;
    }

    return 0;
}


return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por ph1
      Eu estou no início do treinamento. Fiz um pequeno algoritmo no qual há uma sequência de números e começa de 36 X 37 / 2 + 35 X 36 /3 + ... 1 X 2 / 37.
      int deno,a,b;
      a = 37;
      b = 38;
      for (deno=1;deno<=38;deno++){
      a = a - 1;
      b = b - 1;
      cout << a << " X " << b << "/" << deno << "\n";
      O problema está no final da impressão, quando chega ao final é impresso -1 X 0 / 38. Quero que termine com 0 X 0 / 38.
    • Por Derex
      Estou precisando usar jsoncpp.lib no codeblocks, porem ao compilar recebo os seguintes erros do compilador:
      D:\Users\User\Documents\CodeBlocks\demo\main.cpp|20|undefined reference to `Json::Value::Value(Json::ValueType)'|
      D:\Users\User\Documents\CodeBlocks\demo\main.cpp|20|undefined reference to `Json::Value::~Value()'|
      ||error: ld returned 1 exit status|

      Caso tenham duvida se eu linkei a lib ao projeto! 
      Sim eu linkei! 
      Link da linkagem da lib ao projeto >> https://uploaddeimagens.com.br/images/001/501/252/full/Capturar.PNG
    • Por Derex
      Galera, não estou conseguindo usar a libcurl!
      alguem poderia me dar uma ajudinha?
      me ensinar como compilar isso de forma correta!
      Pois estou seguindo todos passos que vem em um doc junto com o proprio projeto. >>BUILD.WINDOWS.txt<<, Que se encontra dentro da pasta >>winbuild<<.
      Segue video dos passos que estou seguindo aqui pra compilar!
      Eu consigo compilar normalmente, porem na hora de usar diz que as funções não foram definidas!
      Segue link >> 
       
    • Por eduardodsilvaq
      Bom a ideia era criar uma lista de encomendas para cada estado. Porem não consigo exibir depois de adicionar com o .push_back(pedido1);    
       
      #include <iostream> #include <list> using namespace std; //criando estrutura de pedidos struct Pedido{ string nomeCliente, mEstado; int estadoEntrega; float cepEntrega; void insere (string stnomePedido, int stestadoEntrega, int stcepEntrega){ nomeCliente = stnomePedido; estadoEntrega = stestadoEntrega; cepEntrega = stcepEntrega; } void mostraPedido() { if (estadoEntrega == 1) {mEstado = "Acre";} if (estadoEntrega == 2) {mEstado = "Alagoas";} if (estadoEntrega == 3) {mEstado = "Amapa";} if (estadoEntrega == 4) {mEstado = "Amazonas";} if (estadoEntrega == 5) {mEstado = "Baia";} if (estadoEntrega == 6) {mEstado = "Ceara";} if (estadoEntrega == 7) {mEstado = "Distrito Federal";} if (estadoEntrega == 8) {mEstado = "Espirito Santo";} if (estadoEntrega == 9) {mEstado = "Goias";} if (estadoEntrega == 10) {mEstado = "Marranhao";} if (estadoEntrega == 11) {mEstado = "Mato Grosso";} if (estadoEntrega == 12) {mEstado = "Mato Grosso do Sul";} if (estadoEntrega == 13) {mEstado = "Minas Gerais";} if (estadoEntrega == 14) {mEstado = "Para";} if (estadoEntrega == 15) {mEstado = "Paraiba";} if (estadoEntrega == 16) {mEstado = "Parana";} if (estadoEntrega == 17) {mEstado = "Pernambuco";} if (estadoEntrega == 18) {mEstado = "Piaui";} if (estadoEntrega == 19) {mEstado = "Rio de Janeiro";} if (estadoEntrega == 20) {mEstado = "Rio Grande do Norte";} if (estadoEntrega == 21) {mEstado = "Rio Grande do Sul";} if (estadoEntrega == 22) {mEstado = "Rondonia";} if (estadoEntrega == 23) {mEstado = "Roraima";} if (estadoEntrega == 24) {mEstado = "Santa Catarina";} if (estadoEntrega == 25) {mEstado = "Sao Paulo";} if (estadoEntrega == 26) {mEstado = "Sergipe";} if (estadoEntrega == 27) {mEstado = "Tocantins";} cout << "Cliente...............: " << nomeCliente << "\n"; cout << "Estado para entrega...: " << mEstado << "\n"; cout << "Cep para entrega......: " << cepEntrega << " \n \n"; } }; void sair() { printf("Ja vai??? Nao! Nao! Espere! Naa...\n"); } int main() { list<Pedido> pedidos; int valor; do { printf ("\n\n1. Criar pedido: \n"); printf ("2. Listar pedidos: \n"); printf ("0. Sair \n\n"); scanf("%d", &valor); switch ( valor ) { case 1: { string valorNomePedido; int valorEstado, confirma; float valorCep; printf("\n Informe seu nome: \n"); cin >> valorNomePedido; cout<<endl; printf("Digite o numero do estado para entrega: \n"); printf("1.AC 2.AL 3.AP 4.AM \n"); printf("5.BA 6.CE 7.DF 8.ES \n"); printf("9.GO 10.MA 11.MT 12.MS \n"); printf("13.MG 14.PA 15.PB 16.PR \n"); printf("17.PE 18.PI 19.RJ 20.RN \n"); printf("21.RS 22.RO 23.RR 24.SC \n"); printf("25.SP 26.SE 27.TO \n"); cin >> valorEstado; if (valorEstado == 0 or valorEstado > 27){ printf("\n Estado invalido. \n"); break; } printf("\n Digite o CEP para entrega: \n"); cin >> valorCep; cout<<endl; //estancia e cria um pedido Pedido pedido1; pedido1.insere(valorNomePedido, valorEstado, valorCep); //solicita confirmação do pedido aao usuario antes de adicionalo a lista cout << "\n Este e seu pedido? \n"; cout << "1.SIM 2.NAO \n\n"; pedido1.mostraPedido(); cin >> confirma; if (confirma == 1){ cout << "\n Pedido confimado com sucesso! \n"; //adiciona pedido a lista pedidos.push_back(pedido1); } if (confirma == 2){ cout << "\n Pedido cancelado! \n"; } break; } case 2: { int tamanho; tamanho=pedidos.size(); if (tamanho==0){ cout << "\n Lista vazia. \n"; }else{ int listar; cout << "\n Quantidade de pedidos: " << tamanho << "\n"; cout << "Listar pedidos?\n"; cout << "1.SIM 2.NAO\n"; cin >> listar; cout<<endl; if(listar == 1){ for (int i=0; i<tamanho; i++){ } } if(listar == 2){ cout << "\n OK! Mas nao esqueca de fazer suas entregas!"; } } break; } case 0:{ sair(); break; } default:{ printf("\n Digite uma opçao valida\n"); break; } } }while(valor!=0); }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.