FJLobato
(usa CentOS)
Enviado em 17/02/2016 - 00:15h
Thihup escreveu:
Olá, pelo que percebi você utilizou o strcmp(...,"WINDOWS") == 1 , sendo que valores diferentes de zero representam strings diferentes. E nos trechos do windows acho que você deveria trocar todas as ocorrencias '/' por '\\' .
E sobre os erros de linkagem com apenas esse trecho do código é impossível identificar o erro. Por gentileza, poste o código todo.
Espero ter ajudado
[]'s
T+
--
Att,
Thiago Henrique Hüpner
(Mensagem scaneada pelo antivírus........ops! não precisa, afinal eu uso Linux!)
Verdade, esqueci de trocar o "\\" mas no caso do "==0" como conserto? O código inteiro é mais de 600 linhas... Ainda não Mas segue as partes que tem "ret_Espacos". Vi um mano que tinha um problema parecido e ele disse que resolvendo referenciando as .libs ...
// Pega a 1 linha do arquivo
fgets(linha_arquivo,1000,arq_alarmes);
while( !feof(arq_alarmes) ) {
// Horario
obter_nToken(linha_arquivo,horario,1);
// Nome do alarme
obter_nToken(linha_arquivo,idAlrm,2);
// Linha de comentario do arquivo, pula para outra linha
if(idAlrm[0] == '.' || idAlrm[0] == '-' || !strcmp(idAlrm, "Novo")){
fgets(linha_arquivo,1000,arq_alarmes);
continue;
}
aux = obter_nToken(linha_arquivo,nome_equip,3);
// Obter a Descrição do Alarme
j = 0;
for(i=aux; i<col1; i++){
descricao[j++] = linha_arquivo[i];
}
descricao[j] = '\0';
ret_Espacos(descricao);
// Obter o Tipo de Alarme
j = 0;
for(i=col1; i<125; i++){
tipo[j++] = linha_arquivo[i];
}
tipo[j] = '\0';
ret_Espacos(tipo);
// Obter a ocorrenciarmação do arquivo
j = 0;
for(i=125; i<155; i++){
ocorrencia[j++] = linha_arquivo[i];
}
ocorrencia[j] = '\0';
ret_Espacos(ocorrencia);
// Para cada linha do arquivo ocorre a chamada a funcao dependendo do metodo de insercao utilizado
// que se utiliza das variaveis idAlrm, nome_equip, descricao, tipo, ocorrencia, horario, data e as insere no banco
switch( enum_metodo_insercao){
case COPY:
cria_arqCOPY_alarmes();
break;
case INSERT:
cria_ar qINSERT_alarmes();
break;
default:
printf("Comando desconhecido. ");
break;
}
// Pega outra linha do arquivo
fgets(linha_arquivo,1000,arq_alarmes);
}
if( enum_metodo_insercao == COPY ) {
fclose(arq_COPY);
}
fclose(arq_alarmes);
fclose(arq_SQL);
} // fim da função pop_Alarmes */
void pop_Equip_open(){
//printf("\n\nNewton");
if( (arq_SQL = fopen(path_arq_cmdsql,"w")) == NULL) {
printf("Erro ao criar arquivo de saida contendo o SQL\n");
exit(1);
}
if( enum_metodo_insercao == COPY ){
if((arq_COPY = fopen(path_arq_logCOPY,"w")) == NULL){
printf("Erro ao criar arquivo de log_COPY\n");
exit(1);
}
if((arq_COPY2 = fopen(path_arq_logCOPY2,"w")) == NULL){
printf("Erro ao criar arquivo de log_COPY2\n");
exit(1);
}//*/
}
pop_Alarmes_csv(1);
pop_Alarmes_csv(2);
pop_Alarmes_csv(3);
pop_Alarmes_csv(4);
criar_Tabela_Arquivo_SAGE();
cria_arqSQLCopy_csv();
fclose(arq_SQL);
if( enum_metodo_insercao == COPY ){
fclose(arq_COPY);
fclose(arq_COPY2);
}
} // fim
int pop_Alarmes_csv(int n){
char aux1[100];
char query[1024];
char linha_arquivo[10001];
char linha_newton[10001];
char path_arquivo_alarmes_aux[1000];
int aux, i, j;
int flag_subes_exist;
strcpy(path_arquivo_alarmes_aux, path_arquivo_alarmes);
snprintf (aux1, sizeof(aux1),"-%d.csv", n);
strcat(path_arquivo_alarmes_aux ,aux1);
// Abrindo o arquivo de Alarmes
if( (arq_alarmes = fopen(path_arquivo_alarmes_aux,"r")) == NULL) {
printf("Erro ao tentar abrir arquivo de alarmes.\nARQUIVO - %s\tPATH - %s\n",_NOME_ARQUIVO, path_arquivo_alarmes_aux);
return;
}
for(i = 0; i<=7; i++){
fgets(linha_arquivo,1000,arq_alarmes);
}
i = 0;
while( !feof(arq_alarmes) ) {
printf("\n [a] i - %d || strlen(linha_arquivo) = %d || linha_arquivo - %s",i,strlen(linha_arquivo),linha_arquivo);
if( strcmp(linha_arquivo, "\n")==0 ){ break;}
strcpy( nome_equip_aux, strtok(linha_arquivo,";"));
if(strcmp(nome_equip_aux, "") ==0 ) { break;}
else strcpy(nome_equip_csv[i], nome_equip_aux);
ret_Espacos(nome_equip_csv[i]);
strcpy( descricao_csv[i], strtok(NULL, ";"));
ret_Espacos(descricao_csv[i]);
// Pega outra linha do arquivo
strcpy( limit1[i], strtok(NULL, ";"));
ret_Espacos(limit1[i]);
strcpy( limit2[i], strtok(NULL, ";"));
ret_Espacos(limit2[i]);
strcpy( limit3[i], strtok(NULL, ";"));
ret_Espacos(limit3[i]);
strcpy( limit4[i], strtok(NULL, ";"));
ret_Espacos(limit4[i]);
strcpy( limit5[i], strtok(NULL, ";"));
ret_Espacos(limit5[i]);
strcpy( limit6[i], strtok(NULL, ";"));
ret_Espacos(limit6[i]);
snprintf (query, sizeof(query),"%s$%s$%s$%$s$%s$%s$%s$%s", nome_equip_csv[i], descricao_csv[i], limit1,limit2, limit3, limit4, limit5, limit6);
fprintf( arq_COPY2,"%s\n",query);
fgets(linha_arquivo,1000,arq_alarmes);
i++;
}
fgets(linha_arquivo, 10000, arq_alarmes);
fgets(linha_arquivo, 10000, arq_alarmes);
while( !feof(arq_alarmes) ) {
if(strcmp(linha_arquivo, "\n")==0) break;
strcpy(horario, strtok(linha_arquivo, ";"));
ret_Espacos(horario);
j = 0;
strcpy(valor, strtok(NULL, ";"));
while(valor != NULL && j<i ){
ret_Espacos(valor);
snprintf (query, sizeof(query),"%s$%s$%s", horario, nome_equip_csv[j], valor );
fprintf( arq_COPY,"%s\n",query);
j++;
if(j<i) strcpy(valor, strtok(NULL, ";"));
}
fgets(linha_arquivo, 10000, arq_alarmes);
}
fclose(arq_alarmes);
return 1;
}
void pop_Alarmes_pas(){
char linha_arquivo[1001];
char query[1024];
int flag_subes_exist;
int aux, i, j;
// Abrindo o arquivo de Alarmes
if( (arq_alarmes = fopen(path_arquivo_alarmes,"r")) == NULL) {
printf("Erro ao tentar abrir arquivo de alarmes.\nARQUIVO - %s\tPATH - %s\n",_NOME_ARQUIVO, path_arquivo_alarmes);
exit(1);
}
if( (arq_SQL = fopen(path_arq_cmdsql,"w")) == NULL) {
printf("Erro ao criar arquivo de saida contendo o SQL\n");
exit(1);
}
if( enum_metodo_insercao == COPY ){
if((arq_COPY = fopen(path_arq_logCOPY,"w")) == NULL){
printf("Erro ao criar arquivo de log_COPY\n");
exit(1);
}
}
criar_Tabela_Arquivo_SAGE();
// insere dados no postgres utilizando o comando copy
if ( enum_metodo_insercao == COPY ) {
cria_arqSQLCopy_pas();
}
if( !feof(arq_alarmes) ) {
fgets(linha_arquivo,1000,arq_alarmes);
obter_nToken(linha_arquivo,horario,4);
}
if(!feof(arq_alarmes)) fgets(linha_arquivo,1000,arq_alarmes);
if(!feof(arq_alarmes)) fgets(linha_arquivo,1000,arq_alarmes);
i = 0;
while( !feof(arq_alarmes) ) {
if(linha_arquivo[0]=='h'){
obter_nToken(linha_arquivo,horario,4);
ret_Espacos(horario);
break;
}
obter_nToken(linha_arquivo,nome_equip_pas[i],2);
ret_Espacos(nome_equip_pas[i]);
fgets(linha_arquivo,1000,arq_alarmes);
i++;
}
j = 0;
while( !feof(arq_alarmes)){
if(linha_arquivo[0]=='h'){
obter_nToken(linha_arquivo,horario,2);
ret_Espacos(horario);
fgets(linha_arquivo,1000,arq_alarmes);
j=0;
continue;
}
obter_nToken(linha_arquivo,valor,2);
ret_Espacos(valor);
if(strcmp("*",valor)==0 || strcmp("",valor)==0)
strcpy(valor,"-10000");
strcpy(nome_equip_aux, nome_equip_pas[j]);
switch( enum_metodo_insercao){
case COPY:
cria_arqCOPY_pas();
break;
case INSERT:
cria_arqINSERT_pas();
break;
default:
printf("Comando desconhecido. ");
break;
}
j++;
if(j>i) break;
fgets(linha_arquivo,1000,arq_alarmes);
}
fclose(arq_COPY);
fclose(arq_alarmes);
fclose(arq_SQL);
} // */