Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 a 10 de 12
  1. #1
    Newbie
    Data de Ingresso
    Jan 2012
    Posts
    70

    buscar texto na string

    >AF231984.1/771-835 RF00366;mir
    >AY037858.1/36669-36733 RF00366;mir
    >AJ507799.1/42848-42912 RF00366;mir
    >AF231983.1/56-120 RF00366;mir
    >U87390.1/56-165 RF00035;OxyS
    >AE015411.1/3734-3625 RF00035;OxyS
    >M34102.1/107-1 RF00035;OxyS
    >AE008893.1/114-3 RF00035;OxyS
    >AL627279.1/144216-144327 RF00035;OxyS
    >X16531.1/107-1 RF00035;OxyS
    >X05193.1/1360-1404 RF00500;TCV_H5
    >M29290.1/257-302 RF00500;TCV_H5
    >X12750.1/269-313 RF00500;TCV_H5

    gostaria de saber como faço para agrupar essas familias da seguinte forma

    RF00366 possui 3 familias
    RF00035 possui 6 familias
    e assim p diante, pq se uso comparação de string nao da certo eu axo por mesmo RF00366 tendo 3 familias, suas string são diferentes, a unica coisa que mostra que são da mesma familia eh o RF00366 e o nome da familia, teria q usar regex e acessar essa parte da string p poder comparar?

    tipo isso sem usar substring e indexOf

  2. #2
    Newbie
    Data de Ingresso
    Jan 2012
    Posts
    70
    tipo eu tinhe feito assim, mas achei meio generico

    $family = ">AF231984.1/771-835 RF00366;mir"; $init = index($family," ");
    $stop = index($family,";");
    $res = substr($family,$init, $stop);


    print $res

  3. #3
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955
    joga da string pra um array, fica mais facil...
    mais tarde te falo como mas tenta ai,

    vou sair...
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

  4. #4
    Newbie
    Data de Ingresso
    Jan 2012
    Posts
    70
    tipo o q eu tava tentando faze aqui eh o seguinte, eu percorro o array uma unica vez e em outro array eu jogo em um array associativo o nome da familia e o numero de vezes tipo RF00366 4


  5. #5
    Eu sei que algum Perlzeiro vai me corrigir ou postar alguma solução melhor mais eu fiz assim.

    Código PHP:
    #!/usr/bin/perl

    use warnings;
    use 
    strict;

    open(HFILE"<thefile.txt") or die "Cant open file";
    my @data = <HFILE>;
    close(HFILE);

    my %hashs = ();

    foreach (@
    data)
    {
        
    $hashs{$1}++ if(/.+ (RF\d{5});.+/);
    }

    foreach 
    my $key(keys (%hashs))
    {
        print(
    $key" found "$hashs{$key}, "\n");

    É melhor não dizer nada e pensarem que é bobo, do que abrir a boca e acabar com as duvidas.

  6. #6
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955
    opa, posso ta errado mas
    Código PHP:
    $hash 
    vc quis fazer
    Código PHP:
    %hash 
    mas do resto, parabens, vc tem futuro em Perl, ficou certinho o codigo!
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

  7. #7
    Valeu acpguedes .

    Eu realmente usei inicialmente o % para acessar os valores do hash porem deu erro, pesquisei na internet onde vi utilizavam o $, imagino que seja porque não estamos acessando o hash e sim um valor escalar dentro dele.
    É melhor não dizer nada e pensarem que é bobo, do que abrir a boca e acabar com as duvidas.

  8. #8
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955
    seria você mais um perlzeiro pra gangue???
    seja bem vindo, e vamo que vamo...

    botar fogo na area perl
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

  9. #9
    Newbie
    Data de Ingresso
    Jan 2012
    Posts
    70
    so nao entendo pq ele nao coloca na sequencia certa..testem ai esse arquivo

    >AF231984.1/771-835 RF00366;mir
    >AY037858.1/36669-36733 RF00366;mir
    >AJ507799.1/42848-42912 RF00366;mir
    >AF231983.1/56-120 RF00366;mir
    >U87390.1/56-165 RF00035;OxyS
    >AE015411.1/3734-3625 RF00035;OxyS
    >M34102.1/107-1 RF00035;OxyS
    >AE008893.1/114-3 RF00035;OxyS
    >AL627279.1/144216-144327 RF00035;OxyS
    >X16531.1/107-1 RF00035;OxyS
    >X05193.1/1360-1404 RF00500;TCV_H5
    >M29290.1/257-302 RF00500;TCV_H5
    >X12750.1/269-313 RF00500;TCV_H5

    ele sai assim

    RF00366 4
    RF00500 3
    RF00035 6


    e nao assim

    RF00366 4
    RF00035 6


    RF00500 3

  10. #10
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955
    precisa ser na ordem???

    Devo te aconselhar a estudar programação, pois o problema não é a linguagem
    o hacker_wap não é perlzeiro e conseguiu fazer...

    Procure estudar mais lógica de programação
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •