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 Yuri Fernandes da Silva
      Olá, sou um membro novo do fórum e estou estudando por conta a linguagem c++ pela internet..
       
      Durante meus estudos, me surgiu uma dúvida em relação ao conteúdo descrito no título desse fórum, mais especificamente com um compilador online (estudo no meu serviço, nos horários vagos)
       
      Essa foi a mensagem de erro que apareceu no compilador Online "C++ Shell":   In function 'int main()': 10:66: error: expected primary-expression before '<' token
       
      Esse foi o código que criei:
       
       
      //Exercício 
      #include <iostream>
      using namespace std;
      int main ()
      {
          int num;
          
          num=12;
          if ((num >=3 && num <=6) || (num > 9 && num < 15) || (num>15 && <20)) {
              cout <<"\n\nValor aceito\n";
          }else{
              cout <<"\n\nnao aceito\n";
          }
          return 0;
      }
       
       
      Agradeço desde já a atenção.
    • Por Lincoln Ferreira de Jesus
      Olá, estou começando a aprender a linguagem c++ e eu gostaria de saber alguns exemplos de jogos feitos com puro c++ sem engine nem nd. Pra eu ter uma noção de quanto um desenvolvedor vai sem usar uma engine =) obrigado.
    • Por EduardoLenz
      Olá, pessoal,
       
      Mexo com microcontroladores, antigamente com PIC e agora com ARM (plataforma LPCXpresso). 
      Ambos utilizam a linguagem C. 
       
      Meu problema é o seguinte: Preciso converter um caractere que vem da UART (porta de comunicação). No PIC havia uma função pronta para tal, no ARM não. 
       
      O caractere chega assim, por exemplo: P123 (tudo junto), e eu queria separar em:
      dado_recebido[]={'P', '1', '2', '3'}; 
      Para poder utilizar um switch 
      switch(dado_recebido[0])
      {
      case 'P':....
      }
       
      alguém tem alguma ideia de como posso fazer a conversão? 
       
      Agradeço desde já. 
    • Por lucas.sardelari
      Olá
      Estou tendo um problema ao compilar uma biblioteca no Android Studio pelo NDK Quando executo o comando ndk-build, um problema é lançado:
       
      Android NDK: Found platform level in ./project.properties. Setting APP_PLATFORM to android-19. Android NDK: WARNING: APP_PLATFORM android-19 is higher than android:minSdkVersion 1 in ./AndroidManifest.xml. NDK binaries will *not* be compatible with devices older than android-19. See https://android.googlesource.com/platform/ndk/+/master/docs/user/common_p roblems.md for more information. [arm64-v8a] Compile : FerrugemLib <= FerrugemLib.c In file included from jni/FerrugemLib.c:15: In file included from jni\CL/cl.h:32: jni\CL/cl_version.h:34:9: warning: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2) [-W#pragma-messages] #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)") ^ jni/FerrugemLib.c:346:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:535:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:733:25: warning: 'clCreateCommandQueue' is deprecated [-Wdeprecated-declarations] openCLObjects->queue = clCreateCommandQueue(openCLObjects->context, openCLObjects->device, 0, &err); ^ jni\CL/cl.h:1760:72: note: 'clCreateCommandQueue' has been explicitly marked deprecated here cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; ^ jni\CL/cl_platform.h:91:70: note: expanded from macro 'CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED' #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED __attribute__((deprecated)) ^ jni/FerrugemLib.c:839:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:944:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:1977:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:2034:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ 8 warnings generated. [arm64-v8a] SharedLibrary : libFerrugemLib.so C:/Android/Sdk/ndk-bundle/build//../toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot find OpenCL: No such file or directory clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [obj/local/arm64-v8a/libFerrugemLib.so] Error 1 Meu Android.mk
      LOCAL_PATH := $(call my-dir)
      LOCAL_C_INCLUDES += PATH_TO_CL_FOLDER
       
      include $(CLEAR_VARS) LOCAL_MODULE := decodeYUV420SP LOCAL_SRC_FILES := decodeYUV420SP.c LOCAL_LDLIBS := -llog -ljnigraphics include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := FerrugemLib LOCAL_SRC_FILES := FerrugemLib.c LOCAL_LDLIBS := -lOpenCL LOCAL_LDLIBS += -llog -ljnigraphics LOCAL_ALLOW_UNDEFINED_SYMBOLS := true include $(BUILD_SHARED_LIBRARY) APP_OPTIM := debug LOCAL_CFLAGS := $(call my-dir) Alguem poderia ajudar em como eu conseguir fazer dar o build com este comando: -lOpenCL
      Me propuseram a trocar o -lOpenCL por -framework OpenCL porem sem sucesso.
      Obrigado.
    • Por Caioba
      Salve! Estou com problemas ao solucionar uma questão que me foi proposta na linguagem C. Já desenvolvi todo o código, mas os casos de teste não batem.
       
      Questão: 
      A agência cearense para investigações criminais denominada OBI (Operação de Baita Investigação) notou que, a exemplo do que ocorreu na Petrobrás, muito dinheiro foi desviado dos cofres públicos do estado para pagamento de propina a políticos nos últimos anos, especialmente pelo partido QU (Quadrilha Unida).
      A investigação está em andamento e a agência recrutou você para converter alguns valores que ficaram com caracteres estranhos após terem sidos descriptografados dos arquivos originais. Sua tarefa neste caso é relativamente simples: basta retirar todos os caracteres estranhos (não numéricos) de cada um dos dois valores disponíveis. Apenas tome o cuidado de separar os primeiros 11 dígitos do primeiro valor. Eles correspondem ao CPF do corrupto :)
      Entrada: A entrada é composta por duas linhas, cada uma delas contendo entre 1 e 60 caracteres ('0'-'9' e outros caracteres não numéricos ou, pelo menos, 1 caracter '0'-'9') e no máximo um ponto ".". Desconsiderando os caracteres não numéricos, o número final não deve ter mais de 17 caracteres (incluindo o ponto decimal).
      Exemplo de entrada:
      7a5a6adfg4a4adsfgsd9fg6aa904aa91#$%1
      42**&7746.67abc$
      Saída: Imprima o CPF do corrupto e o valor que foram desviados dos cofres públicos.
      Exemplo de saída
      cpf 75644969049
      propina 11427746.67
       
      Meu código abaixo:
      #include<stdio.h> #include<string.h> int main(){ char caract[60]; char caract2[60]; char cpf[10]; char propina[15]; int i=0, j=0; scanf("%s", caract); for(i = 0; caract[i] != '\0'; i++){ if(caract[i] >= 48 && caract[i] <= 57){ if(j<11){ cpf[j] = caract[i]; } j++; } } cpf[11] = '\0'; cpf[12] = '\0'; scanf("%s", caract2); for(i = 0; caract2[i] != '\0'; i++){ if((caract2[i] >= 48 && caract2[i] <= 57) || caract2[i] == 46){ propina[j] = caract2[i]; j++; } } cpf[10] = '\0'; printf("cpf %s", cpf); printf("propina %s", propina); }  
×

Informação importante

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