Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #if defined _ffind_included
- #endinput
- #endif
- #define _ffind_included
- //==============================================================================
- //
- //
- // Pesquisar em arquivos! Função ffind
- // Similar a "strfind" porém busca os dados em um arquivo!
- //
- // Uso:
- // fffind ( "nomedoarquivo.extensao", "stringparaprocurar");
- // A função retorna -1 caso a string não for encontrada, caso for encontrada retorna a posição!
- //
- // Existem outros parâmetros opcionais, tais como:
- // ignorecase: Caso este estiver como "true", as diferenças de letras minusculas, maisculas serão ig noradas
- // pos: Caso este valor for maior que zero, a pesquisa só será feita a partir de tal posição de caractere no arquivo
- // USEUTF8: Caso este estiver ativado, a codificação do arquivo usada será com UTF8. Caso contrário, não.
- //
- //==============================================================================
- #include <a_samp>
- #define fffind \
- ffindinternal
- stock ffindinternal(arquivo[], procura[], bool: ignorecase = false, pos = 0, bool: USEUTF8 = true)
- {
- static
- File: gArquivo,
- encontrado, c, i;
- gArquivo = fopen( arquivo, io_read );
- if(pos > 0)
- fseek( gArquivo, pos, seek_current );
- if(ignorecase) {
- for( i = 0; procura[i]; ++i)
- procura[i] = tolower(procura[i]);
- for ( i = 0, encontrado = 0 ; ( c = fgetchar( gArquivo, -1, USEUTF8 ) ) != -1; ++i ) {
- if( tolower(c) == procura[encontrado]) {
- encontrado++;
- if(!procura[encontrado])
- return fclose(gArquivo), i - strlen(procura) + 1 + pos;
- }
- else
- encontrado = 0;
- }
- }
- else {
- for ( i = 0, encontrado = 0 ; ( c = fgetchar( gArquivo, -1, USEUTF8 ) ) != -1; ++i ) {
- if( (c) == procura[encontrado]) {
- encontrado++;
- if(!procura[encontrado])
- return fclose(gArquivo), i - strlen(procura) + 1;
- }
- else
- encontrado = 0;
- }
- }
- return fclose(gArquivo), -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement