+ Responder Tópico
Página 1 de 2 1 2 Última
  1. #1
    Membro
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    Programa abri arquivo .txt e imprime relatorio

    Boa tarde a todos,

    Estou pensando em criar um programa que abra um arquivo .txt ou um arquivo de extensão diferente de .txt mas que abra perfeitamente no bloco de notas, para que procure sequencias dentro do arquivo e possa gerar um relatorio com todos os arquivos aberto com suas seguencias e seja impresso. Minha duvida seria quanto abrir o arquivo e ir naquela determinada posição e copiar a sequencia de 4 ou 5 numeros dentro do txt, esse sequencia ela esta sempre na mesma posição por exemplo linha 1 colunas 20,21,22,23, sei que o cobol faz isso pq sei um pouco de cobol mas eu quero fazer em c ou em java ñ precisa dar o algortmo mas sim a ideia de abrir os arquivos e ir direto naquela posição pegar a sequencia e ira ter um arquivo q tenha mais de 1 sequencia as demais estão na mesmas colunas mas linhas diferentes e a parte de se criar um relatorio das sequencias seria melhor criar um outro txt para imprimir os relatorios ou o c por exemplo pode mandar para impressora direto. Gostaria de somente a ideia sobre minhas duvidas e outra gostaria que o arquivo não fosse alterado de forma alguma

    Desde Já Grato

  2. # Publicidade
    Publicidade

  3. #2
    Suspenso
    Info Conteúdo e Citações Jogos Mensageiros
    Come get some!
    Registro
    Dec 2002
    Mensagens
    4.578
    Verdinhas
    160

    Pra ir em uma posição qualquer do arquivo, pode usar a função FSEEK do C.
    Nem programo em C mais... e com ctz tem solucoes melhores, mas aqui vai uma idéia.

    Código:
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>
    
    int main()
    {
        FILE *fp;
        char c;
       
        fp = fopen("c:/arquivo.txt", "r");
        if (fp != 0)
        {
                     // Coluna 21 a 25
                     for (int i=21;i<=25;i++)
                     {
                      fseek(fp, i, SEEK_SET); // vai pra coluna 'i' do arquivo
                      c = fgetc(fp); // pega o caractere
                      printf("%c", c); // imprime na tela
                     }
       
               fclose(fp);
        }
        else
        printf("Erro ao abrir arquivo.");
        getch();
    }
    Ou seja, ele abre o arquivo e entra num loop, de 21 a 25, sendo que 21 e 25 sao as colunas que ele vai ler do arquivo, pra retornar o caractere daquela posição. Se a sequência estiver em outra linha, vão existir caracteres ENTER, que representam 2 bytes cada, então voce precisa somar +2 pra ler algo da proxima linha.
    Sobre imprimir, acho legal voce salvar as sequências obtidas em outro TXT, e depois mandar imprimir ele.

  4. #3
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    cara valeu vou testar se funciona mas vc sitou sobre somar + 2 em q? para pular linha e sobre o imprimir estava pensando nisso e é o q eu vou fazer

    desde já grato

  5. #4
    Suspenso
    Info Conteúdo e Citações Jogos Mensageiros
    Come get some!
    Registro
    Dec 2002
    Mensagens
    4.578
    Verdinhas
    160

    Por exemplo, tu escreve isso no arquivo:

    Código:
    bla bla 123456
    Ou seja, a sequencia que voce quer, começa na coluna 8 e acaba na 13

    Agora se voce tiver um TXT assim
    Código:
    bla bla 123456
    789
    Se tu quiser pegar a sequencia de baixo tbm (789), ela nao começa na coluna 14, mas sim na 16 (pois o ENTER consumiu 2 posições).
    Nao é nada demais, com tentativa e erro tu acerta. Precisa ter um conhecimento em programação tambem.. vc manja quanto? Oq eu dei foi a idéia geral

  6. #5
    hardMOB Staff - Moderação Avatar de Spidey
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Feb 2002
    Mensagens
    20.921
    Verdinhas
    1553

    Não recomendo usar fseek porque o arquivo pode estar mal formado e fuder tudo. O ideal é ler linha por linha, procurar em cada linha a posição que você quer.

    Eu fiz uma mini-biblioteca (2 funções) pra ler arquivo, uma função pra pegar o número de linhas e outro pra pegar uma linha, vou colar aqui e você aproveita se quiser.

    A idéia é ler a linha e avançar na linha até a posição que você quer, ou ainda usar sscanf pra ler a linha já no padrão que você quiser. Vou dar um exemplo, pra ler uma string de 5 caracteres começando na posição 8 da linha você faz assim:
    Código:
    int erro = sscanf(linha, "%*7[^\n]%5[^\n]", capturado);
    Onde erro é o código de erro do sscanf, linha é a string da linha completa, capturado é a string onde vai ser armazeado os 5 caracteres das posições 8, 9, 10, 11, 12 e o '\0' das strings do C.

    common.h
    Código:
    /* Copyright © 2009 Claudio Roberto França Pereira
    Universidade Federal do Espírito Santo - Estrutura de Arquivos
    
    This file is part of mkqsort.
    
    mkqsort is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    mkqsort is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with mkqsort. If not, see <http://www.gnu.org/licenses/>. */
    
    #ifndef COMMON_HEADER
    #define COMMON_HEADER
    
    //file.c and lineVector.c errors
    #define E_OK 0
    #define E_NULL_FILE_POINTER 1
    #define E_LINE_TOO_LONG 2
    #define E_TOO_MANY_LINES 3
    #define E_END_REACHED 4
    //main.c errors
    #define E_INVALID_ARGUMENTS 101
    #define E_NO_INPUT_FILE 102
    #define E_FILE_NOT_FOUND 103
    
    typedef unsigned int error_t;
    typedef unsigned int uint;
    typedef unsigned long ulong;
    typedef enum{FALSE = 0, TRUE = 1} bool;
    
    //Print _error information
    void PrintError(error_t _error);
    //Print _text to stderr
    void Debug(const char *_text);
    
    #endif
    common.c
    Código:
    /* Copyright © 2009 Claudio Roberto França Pereira
    Universidade Federal do Espírito Santo - Estrutura de Arquivos
    
    This file is part of mkqsort.
    
    mkqsort is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    mkqsort is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with mkqsort. If not, see <http://www.gnu.org/licenses/>. */
    
    #include <stdio.h>
    #include "common.h"
    
    //Print _error information
    void PrintError(error_t _error){
        switch(_error){
            case E_NULL_FILE_POINTER:
                fprintf(stderr, "Null file pointer. Nothing done.\n");
                break;
            case E_LINE_TOO_LONG:
                fprintf(stderr, "Line too long. Function halted.\n");
                break;
            case E_TOO_MANY_LINES:
                fprintf(stderr, "Too many lines in the file. Function halted.\n");
                break;
            case E_END_REACHED:
                fprintf(stderr, "End of file reached. Nothing done.\n");
                break;
            case E_INVALID_ARGUMENTS:
                fprintf(stderr, "Invalid arguments. Nothing done.\n");
                break;
            case E_NO_INPUT_FILE:
                fprintf(stderr, "No input file. Nothing done.\n");
                break;
            case E_FILE_NOT_FOUND:
                fprintf(stderr, "File not found. Nothing done.\n");
                break;
            case E_OK:
            default:
                fprintf(stderr, "All OK.\n");
                break;
        }
        return;
    }
    //Print _text to stderr
    void Debug(const char *_text){
        fprintf(stderr, _text);
        fprintf(stderr, "\n");
        return;
    }
    file.h
    Código:
    /* Copyright © 2009 Claudio Roberto França Pereira
    Universidade Federal do Espírito Santo - Estrutura de Arquivos
    
    This file is part of mkqsort.
    
    mkqsort is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    mkqsort is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with mkqsort. If not, see <http://www.gnu.org/licenses/>. */
    
    #ifndef FILE_HEADER
    #define FILE_HEADER
    
    #include "common.h" //error_t
    #include <stdio.h> //FILE
    
    //Read the number of _lines in _file
    error_t fCountLines(FILE *_file, ulong *_lines);
    //Read the current line from _file into _line
    error_t fGetLine(FILE *_file, char **_line);
    
    #endif
    file.c
    Código:
    /* Copyright © 2009 Claudio Roberto França Pereira
    Universidade Federal do Espírito Santo - Estrutura de Arquivos
    
    This file is part of mkqsort.
    
    mkqsort is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    
    mkqsort is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with mkqsort. If not, see <http://www.gnu.org/licenses/>. */
    
    #include <stdlib.h> //Memory Allocation
    #include <stdio.h> //File operations
    #include <limits.h> //Integral types ranges
    #include "common.h" //Common constants and data types
    #include "file.h" //Function prototypes
    
    //Read the number of _lines in _file
    error_t fCountLines(FILE *_file, ulong *_lines){
        ulong lines = 0;
        int current; //Using int to support EOF
        char previous = '\n';
    
        //Error handling
        if(!_file){
            return E_NULL_FILE_POINTER;
        }
    
        rewind(_file); //Go to the beginning of the file
        //While not in the end of the file or the last read character
        //wasn't a LF, indicating a non-LF-terminating last line
        while((current = fgetc(_file)) != EOF){
            if(current == '\n'){
                if(lines == ULONG_MAX){
                    *_lines = lines;
                    rewind(_file); //Go to the beginning of the file
                    return E_TOO_MANY_LINES;
                }
                lines++; //Increment the number of lines in the file
            }
            previous = (char)current; //Updates the previous character read
        }
        //Check for non-CR/LF terminating line
        if(previous != '\n'){
            lines++;
        }
    
        //Fill the output variables
        *_lines = lines;
        rewind(_file); //Go to the beginning of the file
    
        return E_OK;
    }
    //Read the current line from _file into _line
    error_t fGetLine(FILE *_file, char **_line){
        const uint initialLength = 81; //For 80 columns console windows
        int current; //Current char, must be int to receive EOF
        uint length_left = initialLength; //Initial buffer size
        uint length = 0; //Line length
        char *buffer = (char*)malloc(sizeof(char)*initialLength);
        char *bufferIterator = buffer;
        char *lineIterator;
        error_t returnValue = E_OK;
    
        //Error handling
        if(!_file){
            return E_NULL_FILE_POINTER;
        }
        if(feof(_file)){
            return E_END_REACHED;
        }
    
        while(1){
            if(!length_left){
                //Realloc string to a bigger memory block
                buffer = (char*)realloc(buffer, length*2*sizeof(char));
                //Restore bufferIterator relative position
                bufferIterator = buffer + length;
                length_left = length;
            }
            length++;
            current = fgetc(_file);
            if(current == '\n' || current == EOF){
                *bufferIterator = 0; //Terminate string
                break;
            }else{
                //Error handling
                if(length == UINT_MAX){
                    returnValue = E_LINE_TOO_LONG;
                    *bufferIterator = 0;
                    break;
                }
                length_left--;
                *bufferIterator++ = (char)current;
            }
        }
    
        //Allocate _line and define lineIterator
        *_line = (char*)malloc(sizeof(char)*length);
        lineIterator = *_line;
        //Reset bufferIterator for copy operation
        bufferIterator = buffer;
        while((*lineIterator++ = *bufferIterator++));
    
        //Free buffer
        free(buffer);
    
        return returnValue;
    }
    O útil mesmo é o file.c, mas inclui os outros arquivos porque são dependências do file.c do jeito que tá aí. Se quiser alterar ele, sinta-se à vontade, tá com GPLv3.

  7. #6
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    vou testar as duas ideias funcionando ou não volto a postar

    agradeço ao 2 amigos pela força

  8. #7
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    opa o FSEEK até agora esta dando certinho para o programa mas surgiu outra duvida, é q não lembro mais disso é sobre como passar uma string para uma variavel char por exemplo:

    struct Nomes
    {
    char nome[30] = { "maria", "joão"} ;
    } lista[02];

    não deveria funcionar? pois apresenta esse erro C++ forbids initialization of member e não compila uso o dev cpp. já tentei passar essas informações de todas as maneiras mas não vai

    agradeço pela ajuda

  9. #8
    Suspenso
    Info Conteúdo e Citações Jogos Mensageiros
    Come get some!
    Registro
    Dec 2002
    Mensagens
    4.578
    Verdinhas
    160

    Voce ta criando um array de caracteres, e está tentando preencher com strings. Caractere = 1 byte, string = n bytes.

    char *nome[30] = { "maria", "joão"} ;

    seria o correto.

    De qualquer maneira, acho que não pode inicializar nenhuma variável dentro de struct. Você só pode declarar.. por exemplo:

    struct Nomes
    {
    char *nome[30];
    } lista[02];

    Se quiser atribuir valor, faça depois.
    Espero ter ajudado um pouco

  10. #9
    Membro
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Dec 2006
    Mensagens
    58
    Verdinhas
    0

    #include<stdio.h>
    #include<conio.h>
    void main(){
    FILE *b;
    int l=0;
    char login[100],*c[1];
    b=fopen("marba.txt","w");
    printf("Digite um login: ");
    fflush(stdin);
    gets(login);
    fwrite(login,sizeof(login),1, b);
    fclose(b);
    b=fopen("marba.txt","r");
    getch();
    fread(login, sizeof(login),1, b);
    printf("%s",c);
    fclose(b);
    getch();
    }



    galera, too tentando faze esse programaa de teste para tentar gravar e ler um arquivo txt
    só que na hora de ler na tela, aparece uns negocios estranho, e depois o que eu digitei
    algueem sabe o que deve ser feeito ?

  11. #10
    Suspenso
    Info Conteúdo e Citações Jogos Mensageiros
    Come get some!
    Registro
    Dec 2002
    Mensagens
    4.578
    Verdinhas
    160

    printf("%s",c);

    pq isso? Esse "c" nao possui nada dentro, ta imprimindo lixo na tela.

    Outra coisa

    fwrite(login,sizeof(login),1, b);

    Usando "sizeof", voce ta mandando guardar as 100 posições no arquivo, sendo que o login digitado tem muito menos. Use "strlen" no lugar de "sizeof". Nao esqueça de incluir a biblioteca "string.h"

    Qualquer duvida, poste.

  12. #11
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    Citação Citando HyppeR Ver mensagem
    Voce ta criando um array de caracteres, e está tentando preencher com strings. Caractere = 1 byte, string = n bytes.

    char *nome[30] = { "maria", "joão"} ;

    seria o correto.

    De qualquer maneira, acho que não pode inicializar nenhuma variável dentro de struct. Você só pode declarar.. por exemplo:

    struct Nomes
    {
    char *nome[30];
    } lista[02];

    Se quiser atribuir valor, faça depois.
    Espero ter ajudado um pouco



    é Essa atribuição que não estou conseguindo fazer dá o mesmo erro esse asterisco acho q não precisa pois isso indicaria q a variavel nome é ponteiro o q não é no meu programa. Voltando a atribuição se declaro dentro da struct como depois não dá certo dá o mesmo erro

  13. #12
    Suspenso
    Info Conteúdo e Citações Jogos Mensageiros
    Come get some!
    Registro
    Dec 2002
    Mensagens
    4.578
    Verdinhas
    160

    Olha cara, nao entendi mto bem tua dúvida.
    O erro que tava dando pra voce é que tu ta inicializando o "nome" dentro da struct, e isso nao pode. Se tu deixar de inicializar, e somente declarar, desse jeito:

    char nome[30];

    o erro some, certo?

    Feito isso, dentro do seu main, voce vai popular a struct.
    O asterisco vai precisar sim, eu tb uso o Dev-Cpp e acusa erro, como voce diz que nao precisa?
    Qual o problema ai?

  14. #13
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    a minha duvida é o seguinte, não estou conseguindo ou não lembro como passar uma string para a variavel da struct por exemplo dentro do main tenho a variavel da struct:
    lista[indice].nome = "maria";
    não consigo passar a string "maria" para a variavel lista[indice].nome tanto dentro do main como em qualquer lugar dá o mesmo erro acho q não lembro mais por que nos exercicios de estruturas apenas capturo com gets as strings vindas do teclado e desta forma que eu quero dá o erro: "incompatible types in assignment of `const char[7]' to `char[10]'" bom ai acerto para char[07] depois apresenta o erro "ISO C++ forbids assignment of arrays" no mesmo lugar então gostaria de saber como eu passo a string para a variavel da strutura sem ser pelo teclado?
    e outra como faço para abrir um arquivo apenas pelo nome da extensão ou com apenas um pedaço do nome do arquivo por exemplo: **.txt onde os asterisco são qualquer arquivo q tenha extensão txt ou arq**.txt neste ultimo exemplo os asterisco seriam como data como arq1406.txt ou arq1506.txt como faria dentro da função fopen(arq**.txt, "r")?

  15. #14
    Membro
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Dec 2006
    Mensagens
    58
    Verdinhas
    0

    Citação Citando HyppeR Ver mensagem
    printf("%s",c);

    pq isso? Esse "c" nao possui nada dentro, ta imprimindo lixo na tela.

    Outra coisa

    fwrite(login,sizeof(login),1, b);

    Usando "sizeof", voce ta mandando guardar as 100 posições no arquivo, sendo que o login digitado tem muito menos. Use "strlen" no lugar de "sizeof". Nao esqueça de incluir a biblioteca "string.h"

    Qualquer duvida, poste.


    eu fiz isso, mais como eu exiboo na tela o login ?

  16. #15
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    opa Descobrir como atribuir string para variavel char é só usar o strcpy(struct.variavel, "string") q facil agora só falta descobrir sobre como abrir arquivos apartir da seguinte informação fopen(**.txt, "r");

  17. #16
    Suspenso
    Info Conteúdo e Citações Jogos Mensageiros
    Come get some!
    Registro
    Dec 2002
    Mensagens
    4.578
    Verdinhas
    160

    Citação Citando Vinicius43 Ver mensagem
    eu fiz isso, mais como eu exiboo na tela o login ?
    printf("%s", login);

  18. #17
    Suspenso
    Info Conteúdo e Citações Jogos Mensageiros
    Come get some!
    Registro
    Dec 2002
    Mensagens
    4.578
    Verdinhas
    160

    Citação Citando williamalves_silva Ver mensagem
    opa Descobrir como atribuir string para variavel char é só usar o strcpy(struct.variavel, "string") q facil agora só falta descobrir sobre como abrir arquivos apartir da seguinte informação fopen(**.txt, "r");
    ta cheio de exemplos nesse topico
    no google tem muita coisa tb, soh digitar oq vc quiser que aparece

  19. #18
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    já vasculhei no google não achei nada, sobre abrir arquivo apenas pela extensão do mesmo **.txt ou abrir apenas com um pedaço do nome do arquivo por exemplo nome****.txt, que esta se referendo ao nome1506.txt. Será que tenho q juntar por exemplo uma variavel carrega string "nome", outra variavel string carrega ".txt" e entro com a ultima variavel string "1506" para depois juntar tudo em uma unica variavel "nome1506.txt", para depois jogar essa ultima variavel na funcão fopen("nome1506.txt", r) por exemplo. Não teria um jeito mais facil.

  20. #19
    Suspenso
    Info Conteúdo e Citações Jogos Mensageiros
    Come get some!
    Registro
    Dec 2002
    Mensagens
    4.578
    Verdinhas
    160

    Ah, dai vai complicar um pouco mesmo. Nao conheco um jeito rapido de fazer isso... como vc pode ver, tudo que falei até agora é C puro, pode ser que tenha alguma função em C++ que faça isso, porém nao conheço. Acho que voce vai ter que postar em algum forum mais avançado, ou esperar algum louco ajudar
    Última edição por HyppeR2002 : 16-06-2009 às 19:41

  21. #20
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    BOM, Vou deixar uma funçãozinha que eu fiz, depois q o carinha do outro forum falou o nome da função findfist ai sai a procura até descobrir como funciona para as pessoas que estiver com o mesmo problema que eu tive com procurar listar arquivos no diretorio procurando apenas com o coringa *.txt por exemplo.

  22. #21
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    #include <ctype.h>
    #include <stdlib.h>
    #include <io.h>

    int main( )
    {
    struct _finddata_t test;
    intptr_t dado;
    char entrada[30];
    printf("Codigos Pronto Eng. William alves\n");
    printf("Programa Lista Arquivo Atraves do Coringa(**.txt ou arq**.txt): \n\n");
    printf("Entre com Algum dado Coringa pra Procura: ");
    gets(entrada);
    dado = _findfirst(entrada, &test);
    if(dado == -1L)
    {
    printf("\nNenhum Arquivo Localizado atravez de: %s\n", entrada);
    }
    else
    {
    do
    {
    printf("\n%s", test.name);
    }while(_findnext(dado, &test) == 0);
    _findclose(dado);
    }
    getch ();
    return 0;
    }

  23. #22
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    Esta ai depois de muita procura!!!

  24. #23
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    Grato a todos!!!

  25. #24
    Membro
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Dec 2006
    Mensagens
    58
    Verdinhas
    0

    Galera, fiz um programa aqui com arquivo, só que quando eu vo registra alguma coisa no arquivo, na hora que eu coloco pra deletar (remove(arquivo) ele nao deleta, só se eu fechar o programa e abrir denovo e for direto em deletar arquivo
    alguem tem ideia do que pode ser ?

    eu já coloquei fclose atée sei la aonde
    HAUSUOFH

  26. #25
    Membro
    Autor do tópico
    Info Conteúdo e Citações Jogos Mensageiros
    Registro
    Aug 2008
    Mensagens
    191
    Verdinhas
    25

    Boa Tarde, Gostaria de tirar uma duvida tenho um arquivo TXT na posição 197 tem algumas sequencias que eu quero perar são 3 ou 4 sequencias isso ira depender do arquivo que eu estou lendo. Está sequencia ela está sempre na coluna 197 sempre nesta coluna mas em linhas diferentes estou utilizando o fseek(fp, posição, SEEK_SET), no arquivo são 251 colunas para pular linhas pego 197 e somo mais 251 na variavel posição do fseek. gostaria de saber como faço para comparar com fgets se eu peguei espaço vazio no txt ou a sequencia que eu quero? estou utilizando um
    do{
    fseek
    fgets
    }while(!feof(fp));
    no while estou utilizando o ponteiro de arquivo fp e essa função feof q indica o fim do arquivo gostaria de saber tambem como dar um looping dentro do arquivo com este trecho pq esta dando apenas um looping dentro do arquivo e pegando apenas 1 sequencia do arquivo q esta no topo do mesmo na 1° linha pra ser mais exato.

+ Responder Tópico Ir para o Fórum
Página 1 de 2 1 2 Última

Assuntos do tópico

Compartilhar

Permissões