Compactador .txt para linux

1. Compactador .txt para linux

Jose Alfredo
biriba_di

(usa Outra)

Enviado em 17/11/2011 - 08:16h

Pessoal, bom dia!

Localizei esse codigo que é um compactador de .txt, ele pede o diretorio, e assim q vc coloca ele compacta todos .txt que tiverem na pasta.
Porém quando eu tento compilar ele no GCC ele ta dando o seguinte erro:
14 C:\Users\limadie\Documents\LpI\C++\compacta.cpp cannot convert `char**' to `const char*' for argument `1' to `int strcmp(const char*, const char*)'
33 C:\Users\limadie\Documents\LpI\C++\compacta.cpp cannot convert `char**' to `const char*' for argument `2' to `char* strcat(char*, const char*)'
43 C:\Users\limadie\Documents\LpI\C++\compacta.cpp invalid conversion from `char' to `char*'
43 C:\Users\limadie\Documents\LpI\C++\compacta.cpp initializing argument 1 of `char* strcat(char*, const char*)'
43 C:\Users\limadie\Documents\LpI\C++\compacta.cpp invalid conversion from `char' to `const char*'
43 C:\Users\limadie\Documents\LpI\C++\compacta.cpp initializing argument 2 of `char* strcat(char*, const char*)'

To quebrando a cabeça aqui, mas mexo em uma coisa, da erro em outra.. se conseguirem localizar o erro e me sinalizar!

Obrigado!!
Segue o codigo:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

/*

Este programa compacta todos arquivos txt existentes em um determinado diretorio

*/

int main(int *argc, char **argv[]){
FILE *fp;
char arquivo_temp[60], comando[80],arquivo_tar[60],arquivo[60];
if (strcmp(argv[1],"--h") == 0){
printf("##########################\n\n");
puts("Programa para compactar arquivos txt...");
printf("\n");
puts("Sintaxe: ");
printf("\n");
puts(" #./compacta <DIRETORIO>");
printf("\n\n");
puts("Exemplo:");
printf("\n");
puts("#./compacta /tmp");
printf("\n");
puts("**compacta todos arquivos txt existentes em /tmp");
printf("\n#########################\n");
exit(0);
}
int i;

char lista[80]="ls ";
strcat(lista,argv[1]);
strcat(lista,"/*.txt");
strcat(lista," > lista");
system(lista);
fp = fopen("lista","r");
while(!feof(fp)){
/*fgets(string,60,fp)*/

fscanf(fp,"%s",arquivo_temp);
for(i=0;i<strlen(arquivo_temp)-4;i++)
strcat(arquivo[i],arquivo[i]);

printf("\n\n%s\n\n",arquivo);


/*criando o pacote tar*/

/*comando = 'tar -cf' arquivo_tar arquivo */

strcpy(comando,"tar -cf ");
strcpy(arquivo_tar,arquivo);
strcat(arquivo_tar,".tar");
strcat(comando,arquivo_tar);
strcat(comando," ");
strcat(comando,arquivo);
system(comando);

strcpy(comando,"");

/*criando o pacote bz2*/
strcpy(comando,"bzip2 -z ");
strcat(comando,arquivo_tar);
system(comando);
}
system("rm *.txt -rf");
system("rm *.tar -rf");
fclose(fp);
}



  


2. Re: Compactador .txt para linux

???
gokernel

(usa Linux Mint)

Enviado em 17/11/2011 - 08:53h

Para consertar "STRCMP":

Acredito eu que esta linha não esteja correta:
int main(int *argc, char **argv[])

Tente consertar assim:
int main ( int argc, char *argv[] )



3. Re: Compactador .txt para linux

Jose Alfredo
biriba_di

(usa Outra)

Enviado em 17/11/2011 - 10:35h

gokernel escreveu:

Para consertar "STRCMP":

Acredito eu que esta linha não esteja correta:
int main(int *argc, char **argv[])

Tente consertar assim:
int main ( int argc, char *argv[] )



Acredito que resolveu parte do problema, porem ainda continua dando os seguintes erros:
43 C:\Users\limadie\Documents\LpI\C++\compacta.cpp invalid conversion from `char' to `char*'
43 C:\Users\limadie\Documents\LpI\C++\compacta.cpp invalid conversion from `char' to `const char*'

Se puder ajudar...hehe, abraço


4. Re: Compactador .txt para linux

???
gokernel

(usa Linux Mint)

Enviado em 17/11/2011 - 11:36h

Olá caro colega !

Para tentar te ajudar, postar o código SOMENTE da linha 43.


5. Re: Compactador .txt para linux

Jose Alfredo
biriba_di

(usa Outra)

Enviado em 17/11/2011 - 13:15h

gokernel escreveu:

Olá caro colega !

Para tentar te ajudar, postar o código SOMENTE da linha 43.


Boa tarde!

segue o codigo:

fscanf(fp,"%s",arquivo_temp);
for(i=0;i<strlen(arquivo_temp)-4;i++)
strcat(arquivo[i],arquivo[i]);

a linha 43 é a terceira, o problema está no strcat...

Obrigado!


6. Re: Compactador .txt para linux

???
gokernel

(usa Linux Mint)

Enviado em 17/11/2011 - 14:07h

Então tente exatamente assim(com essas 4 linhas):
//----------------------------------------------
fscanf(fp,"%s",arquivo_temp);
char *temp = arquivo;
for(i=0;i<strlen(arquivo_temp)-4;i++)
strcat ( arquivo, temp );
//----------------------------------------------

Talvez o problema seja por usar "arquivo" como escrita(parametro 1) e somente leitura(parametro 2) com STRCAT.


7. Re: Compactador .txt para linux

Jose Alfredo
biriba_di

(usa Outra)

Enviado em 17/11/2011 - 15:02h

gokernel escreveu:

Então tente exatamente assim(com essas 4 linhas):
//----------------------------------------------
fscanf(fp,"%s",arquivo_temp);
char *temp = arquivo;
for(i=0;i<strlen(arquivo_temp)-4;i++)
strcat ( arquivo, temp );
//----------------------------------------------

Talvez o problema seja por usar "arquivo" como escrita(parametro 1) e somente leitura(parametro 2) com STRCAT.


continua dando o mesmo erro:
44 C:\Users\limadie\Documents\LpI\C++\compacta.cpp initializing argument 1 of `char* strcat(char*, const char*)'
veja o codigo

//
fscanf(fp,"%s",arquivo_temp);
char *temp = arquivo;
for(i=0;i<strlen(arquivo_temp)-4;i++)
strcat ( arquivo[i], temp );
//

ta [*****], n vai de jeito nenhum.. :/


8. Re: Compactador .txt para linux

???
gokernel

(usa Linux Mint)

Enviado em 17/11/2011 - 15:54h

Quando eu chegar em casa hoje a noite e se tiver um tempinho disponível vou tentar resolver esse problema... então aguarde.


9. Re: Compactador .txt para linux

???
gokernel

(usa Linux Mint)

Enviado em 17/11/2011 - 19:46h

Compilei um codigo simples no gcc e não houve nenhum problema, o problema talvez seja o compilador / versão.

Usei o GCC no windows e compilou sem problemas um pequeno codigo com o GCC version 3.4.2 (mingw-special).

Abraço.


10. Re: Compactador .txt para linux

Jose Alfredo
biriba_di

(usa Outra)

Enviado em 18/11/2011 - 07:49h

gokernel escreveu:

Compilei um codigo simples no gcc e não houve nenhum problema, o problema talvez seja o compilador / versão.

Usei o GCC no windows e compilou sem problemas um pequeno codigo com o GCC version 3.4.2 (mingw-special).

Abraço.


Se nao for pedir mtu, peço que tente compilar o codigo que disponibilizei la em cima, pra tentar achar o erro.
Brigadao!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts