Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
matheustotora

Dúvida com Arquivo.

Recommended Posts

Pessoal, boa tarde.

Estou com a seguinte dúvida: preciso pegar uma determinada palavra numa linha lida do arquivo e jogar esta palavra em uma variavel.

Exemplo: TFAA OBJECT IDENTIFIER ::= { enterprises 33219 }

Preciso pegar a palavra TFAA e o numero 33219. Cada palavra será colocada em uma variável de uma struct.

Eu utilizei até agora o método strstr para identificar a palavra chave, que no caso da linha do exemplo seria "OBJECT IDENTIFIER ::=". Depois de ter encontrado a palavra chave, eu joguei numa variavel a linha toda. E a partir dai que não estou conseguindo resolver meu problema.

Caso não esteja claro minha dúvida, eu tento colocá-la de outra maneira.

Aguardo ajuda!

Editado por matheustotora

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tendo a string na mão você precisa interpretá-la char por char e isolar em uma string à parte apenas os números. Depois você usa a função

int atoi(const char*) para transformar em inteiro

float atof(const char*) para transformar em float

Att. Aron.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Tendo a string na mão você precisa interpretá-la char por char e isolar em uma string à parte apenas os números. Depois você usa a função

    int atoi(const char*) para transformar em inteiro

    float atof(const char*) para transformar em float

    Att. Aron.

    Então, eu tenho uma variável string que lê o arquivo linha por linha. Para ler o arquivo estou utilizando a função fgets. No caso de interpretar char por char que você disse, qual dica você me daria para realizar tal? Que função se encaixa neste caso?

    Desde já agradeço sua disposição em me ajudar.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    para avaliar byte por byte vá passando pela string através de um laço for e, a cada resultado, veja se é entre '0' ou '9'. Se for-> ativa o modo "ler número", lê o número inteiro e armazena em uma string separada até que apareça um char que não seja número (espaço ou letra).

    Outra ideia seria separar a string em palavras e avaliar uma por uma (e dentro da palavra byte por byte ou usando strcmp(char*, char*) que diz se duas strings são iguais ou não)

    strcmp("Olá", "Olá") retornará 0, ou seja não existe diferença.

    Para separar por palavras existe também uma função (que não me recordo do nome) strxxx, que já faz isso pra você. Pesquise sobre manipulação de strings que você acha fácil o nome da função.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Sabendo o padrão da string você poderia tokenliza-la usando a função strtok e dai pegar as substrings.

    Não sei se se aplica ao seu caso,você não disse muito sobre o mesmo.

    Att. regreth

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • para avaliar byte por byte vá passando pela string através de um laço for e, a cada resultado, veja se é entre '0' ou '9'. Se for-> ativa o modo "ler número", lê o número inteiro e armazena em uma string separada até que apareça um char que não seja número (espaço ou letra).

    Cara estou tentando aqui resolver por este método que me disse. Caso eu consiga resolver, posto aqui.

    Obrigado pela força! :)

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Tendo a string na mão você precisa interpretá-la char por char e isolar em uma string à parte apenas os números. Depois você usa a função

    int atoi(const char*) para transformar em inteiro

    float atof(const char*) para transformar em float

    Att. Aron.

    Eu ainda não consegui resolver meu problema. Vou adicionar aqui mais algumas informações para ficar mais claro minha duvida.

    Eu criei uma struct com 2 campos: um recebe o nome (TFAA) e o outro os numeros (33219). A minha dificuldade está em obter os números para posteriormente jogar na variável da struct. Eu estou tentando isolar os números como disse barutaji, mas ainda não consegui.

    A lógica que pensei para obter os números foi: ler a string com uma repetição até encontrar o caracter {. Em seguida, ignorar o espaço entre o caracter { e a string e ler a string até encontrar outro espaço. Feito isso, pegar o número até o espaço antes do caracter }. Mas não estou achando um jeito de criar uma lógica para isso, ou seja, tratar estes espaços com a string.

    String: TFAA OBJECT IDENTIFIER ::= { enterprises 33219 }

    Me ajudem na lógica?

    Obrigado!

    Editado por matheustotora

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×