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 Jam123
      A classe Pessoa jurídica tem os atributos CNPJ e razão social.
      A classe Pessoa Física tem os atributos CPF e RG.
      A classe Aluno tem os atributos matrícula (inteiro); período (inteiro); quantidade de matérias
      matriculadas no semestre (inteiro); nome do curso (string).
      A classe Estudos tem o atributo Tempo_de_Estudo.
      A classe Professor tem os atributos Formação e quantidade_de_aulas_lecionadas.
      A classe Militar tem os atributos tipo_de_arma e Patente.
      A classe restaurante tem os atributos tipo_de_comida e o preço_do_quilo_da_comida.
      Todas as classes tem um método para inicializar os atributos e um método para imprimir na
      tela os atributos.
    • Por fernando.h.luiz
      Preencha uma matriz (x,y) com números inteiros aleatórios.
      a) Solicite um número do usuário, pesquise se esse número existe na matriz.
      b) Se existir, imprima em qual posição ele se encontra (linha x coluna).
      - Considere que podem haver valores repetidos.
      - Se não existir, imprima uma mensagem de erro.
      c) Trabalhe com alocação dinâmica de memória.

      alguem pode me ajudar ??
    • Por DrDjou
      Boa tarde pessoal estou com muita dificuldade para fazer esse códigos:
      1) Cléo Kuhn contratou você para desenvolver um programa (utilize funções) que leia a quantidade de chuva em milímetros, por dia durante um mês. Sabendo que, podemos ter meses com 28, 30 e 31 dias, (ignorando o ano bissexto). Primeiramente deve ser possível informar o mês que deseja lançar as informações, depois deve ser possível informar a precipitação diária de chuva. Após a inserção dos dados deve ser possível verificar a média mensal de precipitação em milímetro, quantidade de dias que choveu, e a quantidade de dias que não choveu.
      este já começei:
      #include<stdio.h>
      #include<stdlib.h>
      int main(void){
          int mes,a,b,c,m,soma=0,i;
          printf("Digite o mes que voce quer informar a chuva:\n");
          scanf("%d",&mes);
                  if(mes=1,mes=3,mes=5,mes=7,mes=8,mes=10,mes=12){
                      for(m=0;m<=31;m++){
          printf("Milimetros de chuva\nse nao choveu digite'0'.Dia %d:",i);
          scanf("%d",&m);
          }
                  if(mes=4,mes=6,mes=9,mes=11){
                      for(m=0;m<=30;m++){
          printf("Informe quantos milimetros choveu neste dia se nao choveu digite'0':\n");
          scanf("%d",&m);
          }
                  if(mes=2){
                      for(m=0;m<=28;m++){
          printf("Informe quantos milimetros choveu neste dia se nao choveu digite'0':\n");
          scanf("%d",&m);
          }    if(m>=0)
                          Printf("Não choveu");
                          scanf("%d",&a);
                          if(m<0)
                          Printf("Choveu");
                          scanf("%d",&b);
          a=soma+m;
           b=soma+m;
                      printf("choveu %d, nao choveu %d.",b,a);
              
                  }                                    
                      
                      system("pause");
                      }}}
       
       
       
      2) (2 pontos) Implemente um programa que utilize funções para calcular o valor a ser pago no acerto de uma prestação de conta. O programa deverá solicitar ao usuário o valor da prestação e o número de dias em atraso e passar estes valores para a função que calcula o valor a ser pago, e devolverá este valor ao programa que a chamou. O programa deverá então exibir o valor a ser pago na tela, e deverá voltar a pedir outro valor de prestação e assim continuar até que seja informado um valor igual a zero para a prestação. Neste momento o programa deverá ser encerrado, exibindo o relatório do dia, que conterá a quantidade e o valor total de prestações pagas no dia. O cálculo do valor a ser pago é feito da seguinte forma. Para pagamentos sem atraso, cobrar o valor da prestação. Quando houver atraso, cobrar 2% de multa, mais 0,2% de juros por dia de atraso.
    • Por Rondz
      Faça um programa que receba dados do tipo inteiro suficientes para preencher uma matriz com dimensão 2 x 5, calcule e mostre a quantidade de números ímpares.
       
      Faça um programa que receba 15 valores reais que devem ser armazenados em um vetor. Após a digitação de todos os valores, mostre-os na tela, altere todos os valores para sua metade respectiva e imprima os resultados atuais.
    • Por Luana S
      Boa tarde.
      Não sei se pode ser postado aqui, mas agradeço desde já.
      Sou iniciante e estou com essa duvida.
      O ultimo cout não mostra as 3 variáveis, ou mesmo os caracteres.
       

×

Informação importante

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