Arquivos C++

2 respostas
joaofs_18
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
  
	FILE *fpin;   //variável do arquivo
	FILE *fpout;   //variável do arquivo
	char frase[2048];
	char arquivo[20];
	char frase_saida[2048];
	int i=0;
	int l=1;
	int k=0;

  
	printf("Abrindo Painel txt\n");

	fpin=fopen("Painel.txt","r"); //abrindo para leitura
	if(fpin==NULL) {
		printf("Erro!");
		exit(1);
	}	

	fpout=fopen("Salvando.txt","w"); //criando para escrita
	if(fpout==NULL) {
		printf("Erro!");
		exit(1);
	}	


//	fgets(frase,2048,fpin); //  as 2048 próximas


	while(!feof(fpin)) { //enquanto não for o final do arquivo

    fgets(frase,2048,fpin); //  as 2048 próximas
    frase[37]=0;
    if (!strcmp("	Painel_Controle                Group",frase)) {
        fgets(frase,2048,fpin); //  as 2048 próximas
        fgets(frase,2048,fpin); //  as 2048 próximas
        fgets(frase,2048,fpin); //  as 2048 próximas
        fgets(frase,2048,fpin); //  as 2048 próximas
        while(!feof(fpin)) { //enquanto não for o final do arquivo
           fgets(frase,2048,fpin); //  as 2048 próximas
            if (!strcmp("",frase)) {
            printf("OK");
              return (0);
            }
            fprintf(fpout,frase); //grava no arquivo
       }

//                           getch(frase_saida);
       }

	}
	fclose(fpin);
	fclose(fpout);
	system("pause");
	return(0);
	
}//fim

Tenho um arquivo painel.txt, e quero gravar para um outro arquivo salvando.txt apenas os caracteres que me interessa. O programa tá funfando até certo ponto. Dento do arquivo painel.txt eu tenho o seguinte texto:
Eu queria que quando chegasse no caracteres "APP: AtivoAdm ; Read" ele parasse. Lembrando que o arquivo é muito grande coloquei só a parte que me interessa do arquivo.
Painel_Controle Group
Default Access: None
User Description: Lista de usuários do Painel de Controle CAIXA. Nova versão.
Parent Group:
Members:
c027279
c207322
c074519
c093562
c092311
c072188
c095063
c296806
c075711
c092316
c093563
c093513
c105128
c093517
c101125
c346890
GEINE Monitoramento
c035420
c056021
C027609
c055828
c047662
c223177
c534646
c060218
c051446
c302476
c022764
c007799
c200221
c224782
C029354
c247056
c521265
c002966
c036505
c024981
C035072
c052765
c502165
c536881
c569401
c574212
c622132
c034950
c061047
c814929
c056433
c029315
c835335
C024399
c012789
c838030
c035500
c045482
c531528
c040606
c046859
C029906
c065282
c040605
c417785
c004800
c029262
c098245
c038381
c013265
c049654
C206983
c045253
c212205
c028307
c030763
C056191
c043012
c004863
C275731
c056041
c024596
c031002
c035427
C026405
c041787
c056398
c525348
c035609
c323330
c012347
c626206
c045958
C030903
c039109
c042094
C443297
c459129
c015074
C015500
c013324
c034517
c052779
c025413
c550748
c068744
c014583
c046751
C033791
c583195
c585070
c590500
c026517
C598700
c614390
c041218
c023145
c043216
C622171
C038925
c046243
c055848
c631702
c795491
c654740
c006081
c039135
c017477
c738102
C739532
c014345
c008109
c046198
C760880
c760940
C039188
c018188
c047592
c015868
C004166
c030693
c833164
c833485
c049162
c035397
c055862
c036031
C849305
c852053
c852240
c854269
c014719
c856217
c034495
c867374
c024384
c872199
c023484
C041695
c003138
c001046
GEINE Adm
c073590
GEINE Custos
GEINE Estagiarios
c080647
c032938
Gerente
c005709
c065491
c069864
c031929
c848774
c058670
e629151
c086430
c034857
c058995
c089387
c032428
c270430
c837800
c033409
c008150
c006234
c097585
c017442
c083564
c083356
c055911
c073062
c070279
c070245
c051846
c002091
c061063
c063876
c038678
c276860
c079285
c032349
c077295
c038486
c039975
c022902
c045960
c045518
c084107
c018984
c092699
c091352
c084336
c095446
c558060
c065312
c056829
c082119
c082514
c296065
c051303
c071777
c082426
c060872
c066816
c077346
c054893
c080202
c066444
c022500
c085784
c075427
c074284
c004390
c032348
c070462
c056288
c079384
c073129
c056453
c056469
c008954
c017475
c585260
c034062
c520663
c516275
c488210
c474822
c018404
c389445
c038098
c014659
c348106
c039841
c334250
c024240
c016474
c029480
c025992
c887510
c879895
c061356
c005807
c023672
c871442
c006189
c000178
c034649
c862359
c845845
c842715
c841850
c006177
c038272
c839567
c039972
c839230
c026695
c818755
c039158
c002075
c001363
c003455
c044153
c711949
c023080
c032578
c028306
c598910
c825657
c824875
c076255
c819950
c056253
c816830
c049295
c816190
c000515
c031020
c064822
c025978
c799295
c781225
c305010
c042929
c051564
c044714
c738031
c650495
c024913
c296873
c041343
c296665
c003521
c283270
c014713
c003870
c559825
c531518
c031507
c316710
c046974
c296695
c030106
c295484
c048286
c237895
c025264
c052256
c000879
c272530
c263050
c252840
c003071
c239365
c115454
c034457
c006521
c231370
c021523
c225785
c221792
c021491
c215628
c001764
c044728
c025223
c186215
c030508
c044829
c117868
c079122
c007192
c056468
c830233
c043320
c709317
c037547
c045071
c050912
c022791
c026335
c027002
c024790
c022616
c041673
c173995
c096668
c052727
c366825
c070979
c055863
c037528
C028917
c336360
c476317
c747710
c803820
c028440
c056149
c062243
c061109
c048227
c056761
c030096
c092122
c047660
c089284
c067010
c059340
c076417
c022093
c067393
c076443
C015944
c044410
c037245
c054634
c041298
c032290
c023099
c095494
c036717
c068765
c072158
c045426
c584520
c056789
c069418
c072672
c072658
c063474
c082454
c026527
c066192
c324600
c096741
c095403
c036669
c084121
c048666
c063413
c078149
c000729
c070839
c071488
c045569
c077151
c062850
c048766
c015016
c091038
c065558
c088850
c345710
c073868
c041892
c030276
c051863
c000566
c072288
c062988
c080479
c055933
c814928
c045095
c630125
c087687
c873396
c078355
c022578
c028422
c005161
c044514
c087443
c075832
c012790
c035421
c071943
c041779
c073996
c036822
c044496
c019897
c050486
c074522
c063230
c041669
c080931
c067929
c028253
c040076
c091025
c660586
c031866
c080377
c054122
c069403
c056135
c695360
c779769
c041089
c045035
c085379
c078620
c092059
c064294
c058432
c092785
c514724
c024654
c072205
c031886
c089390
c082691
c068292
c057464
c231202
c072935
c033496
c055414
c030430
c048633
c008206
c039199
c026941
c008578
c063765
c047918
c096510
c077687
c033398
c084351
c078219
c006238
c037858
c080863
c069662
c003108
c065868
c056651
c076259
c071784
c076693
c082792
c067650
c036085
c121962
c077579
c159597
c075175
c089438
c004190
c832343
c056328
c067354
c078506
c078653
c082981
c084441
c083614
c078714
c064576
c092766
c090583
c070928
c031523
c006191
c062847
c071585
c066866
c223779
c069455
c228615
c087003
c072876
c066006
c065702
c003639
c073709
c072044
c067864
c051139
c067803
c071717
c087604
c084716
c084310
c059671
c085801
c031872
c078097
c065463
c081009
c251643
c087525
c072944
c082575
c045472
c089630
c010471
c093568
c093569
c101312
c100693
c068330
c092817
e631090
Salomao Lopes Azulay Filho
Susie Helena Ribeiro
c076502
c056161
c046626
c075162
c035517
c030967
C035216
C046255
c027101
c043574
C056214
c082470
c068337
c037949
c042354
C046739
c800812
c027331
c089609
c012353
c047186

APP: AtivoAdm ; Read
APP: Bancos ; Read
APP: Carteira ; Read
APP: Custos ; Read
APP: DRE ; Read
APP: FGTS ; Read
APP: GadMetas ; Read
APP: Indic ; Read
APP: Indice ; Read
APP: Loterias ; Read
APP: Mktshare ; Read
APP: Municip ; Read
APP: OrcLegal ; Read
APP: PerdasEN ; Read
APP: PosPatr ; Read
APP: Proged ; Read
APP: Siapc ; Read
APP: Sideminf ; Read
APP: SidinfSR ; Read
APP: Transben ; Read
APP: DesenUrb ; Read
APP: MCont ; Read
APP: RSE ; Read
APP: Inform ; Read
APP: cub_tes ; Read
APP: Financas ; Read

obs: o arquivo continua tanto pra cima quanto pra baixo

2 Respostas

E

http://www.cplusplus.com/reference/clibrary/cstring/strstr/

ViniGodoy

Ué, não era um tópico de C++? Entrei aqui e vi um programa em C.

Se vc quiser manipular arquivos usando C++ mesmo, existem formas muitíssimo mais simples de fazer isso usando streams e os algoritmos da STL.

Nem vou citar a boost pq é covardia.

Criado 10 de novembro de 2010
Ultima resposta 10 de nov. de 2010
Respostas 2
Participantes 3