specian 0 Denunciar post Postado Setembro 18, 2009 Senhores, Por favor estou com dois problemas quanto a leitura de arquivos em C. Tenho um arquivo txt o qual tem cerca de 65K e preciso capturar algumas informações que estão dentro dele e descartar outras. Toda linha do arquivo que preciso capturar fica abaixo de uma linha que comeca com '#', a linha de baixo nao existe um padrao definido. Entao essa linha com '#' eu consigo captura-la, agora e a debaixo? Como eu faço para que ao inves de apontar para a linha que eu especifiquei no codigo ela aponte para a que fica abaixo dela? O segundo problema é.... como faço para capturar uma palavra que esta dentro desse arquivo, eu ate usei um POG(programação orientada a gambiarra) rsrsrsrsr capturei caracter por caracter joguei em um vetor, concatenei cada posição em uma variavel e depois comparei com o que eu precisava.... funciona, mas achei muito porco, acho que deve ter uma maneira mais facil...so nao sei qual.... se puderem me ajudar em qq um dos dois problemas, ja fico mais que agradecido.... Forte abraço!!!! Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Setembro 18, 2009 deu uma olhada no comando fseek ? ele posiciona o cursor em determinado parte do seu txt. []s Compartilhar este post Link para o post Compartilhar em outros sites
specian 0 Denunciar post Postado Setembro 18, 2009 ate cheguei a pesquisar sobre essa funcao, mas pelo que eu havia entendido, ela é randomica que nao havia um lugar especifico onde eu possa colocar. por gentileza, teria algum exemplo so p eu tomar como base de pesquisa. Muito obrigado. abraços!! Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Setembro 18, 2009 A função fseek não é randomica, se ela fosse não haveria utilidade! A declaração dela é: int fseek ( FILE * stream, long int offset, int origin ); E origin pode receber os valores: SEEK_SET -> Começo do arquivo SEEK_CUR -> Posição atual SEEK_END -> Final do Arquivo uma chamada à fseek(pFile, 12, SEEK_CUR); Irá avançar 12 bytes a partir da posição atual. Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Setembro 18, 2009 Meu vou sugerir assim. Aproveita que o teu arquivo tá dividido em linhas, e que a função fgets lê caracteres até chegar no limite de caracteres que pediu, ou encontrar uma nova linha ou EOF. Lê uma linha, compara o primeiro caractere, se for # vê qual é o resto da linha pra comparar com o comando que tu quer ver, se for a parte que tu quer, lê denovo com fgets que tu vai pegar a outra linha que tu quer aí é só usar ela. Se não for vai lendo até achar outra linha onde o primeiro caracter da string lida é #, aí verifica denovo. Assim tu acha! Compartilhar este post Link para o post Compartilhar em outros sites