Função que procura string [RESOLVIDO]

1. Função que procura string [RESOLVIDO]

djasdijai
gaver

(usa Ubuntu)

Enviado em 20/12/2010 - 11:52h

Olá meu povo, presiso de uma função que procure uma string na variavel FD, que é aonde está o arquivo.
E se possivel que retorne para o if.
Porque o programa procura por palavras no arquivo dai eu uso if pra printar que existe arquivo intão essa função tipo tem que ser compativel com o if.


  


2. Está meio confuso

Ezequias Rocha
Ezequias Rocha

(usa Ubuntu)

Enviado em 20/12/2010 - 13:03h

A princípio, construir uma função que faça algo como detectar uma sequência de caracteres num dado arquivo é algo bem simples de se fazer. Todavia, peço que seja mais preciso no que está procurando e poste o problema com maiores detalhes e num tom mais formal para não dar margem a erros.

Embraces!


3. e isso dai

djasdijai
gaver

(usa Ubuntu)

Enviado em 27/12/2010 - 21:28h

e isso dai que você pensou me fala como faço


4. Re: Função que procura string [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 27/12/2010 - 21:32h

Dê uma olhada na função strstr() [ http://www.cppreference.com/stdstring/strstr.html ], acho que ela pode lhe ajudar.




5. Aproveita - Mamão com acúcar!

Ezequias Rocha
Ezequias Rocha

(usa Ubuntu)

Enviado em 28/12/2010 - 17:19h

Tudo praticamente pronto, melhor impossível!



/* Programa para detecção de conjunto de caracteres sequenciais
num dado arquivo, gerendo arquivo com copia das linhas que contenham
tal conjunto de caracteres.

Programador: Ezequias Rocha
Data: 05/11/2010
*/

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

#define Max_Length 120//Tamanho máximo da linha nos arquivos
#define Max_Name_Lenght 20//Tamanho máximo do nome dos arquivos

int main(int argc, char *argv[])
{
char *Linha_Buffer;
char *Nome_Arquivo_Original;
char *Nome_Arquivo_Gerado;
char *Conjunto_Seq;
FILE *arq1, *arq2;


Linha_Buffer = (char *) malloc(Max_Length * sizeof(char));
Conjunto_Seq = (char *) malloc(Max_Length * sizeof(char));
Nome_Arquivo_Original = (char *) malloc(Max_Name_Lenght * sizeof(char));//Máximo de 20 caracteres
Nome_Arquivo_Gerado = (char *) malloc(Max_Name_Lenght * sizeof(char));//Máximo de 20 caracteres
do{
printf("\nDigite nome do arquivo a ser escaneado (com extensao):\n");
gets(Nome_Arquivo_Original);
if((arq1 = fopen(Nome_Arquivo_Original, "r")) == NULL)
printf("\n\nImpossivel abrir arquivo!\n\n");
}while(arq1 == NULL);
do{
printf("\nDigite nome do arquivo a ser Gerado (com extensao):\n");
gets(Nome_Arquivo_Gerado);
if((arq2 = fopen(Nome_Arquivo_Gerado, "w")) == NULL)
printf("\n\nImpossivel abrir arquivo!\n\n");
}while(arq2 == NULL);
printf("\nDigite sequencia a ser procurada:\n");
gets(Conjunto_Seq);
fgets(Linha_Buffer, Max_Length, arq1);
while(!feof(arq1))
{
if(Compara_Sequencia(Conjunto_Seq, Linha_Buffer))
Copia_Linha(Linha_Buffer, arq2);//Função muito fácil de ser implementada - primeira implementação datada de 1890 A.C.
fgets(Linha_Buffer, Max_Length, arq1);
}
fclose(arq1);
fclose(arq2);
printf("\n\nArquivo %s gerado com sucesso!\n\n", Nome_Arquivo_Gerado);
system("PAUSE");
return 0;
}

unsigned char Compara_Sequencia(const char *Sequencia, char *Linha_Generica)
{
unsigned char IGUAL = 0;
unsigned int i = 0, j = 0;
while(Linha_Generica[i] != '{TEXTO}')
{
if(Sequencia[j] != '{TEXTO}')
{
if(Compara_Caracter(Linha_Generica[i], Sequencia[j]))//Função fácílima de ser implementada - uma ameba já nasce fazendo isso
{
IGUAL = 1;
j++;
}
else if(IGUAL)
return 0;
}
i++;
}
if(IGUAL)
return IGUAL;
return 0;
}

Embraces!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts