• Publicidad

Especie de ventana deslizante

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Especie de ventana deslizante

Notapor barbara » 2011-01-12 14:00 @625

Hola...
Soy muy nueva en esto.. creo que sé solo lo más básico...

El problema es que necesito hacer un programa que recorra un archivo letra por letra, pero en una especie de ventana deslizante, y me entregue un archivo de salida con todos los cortes hechos por las ventanas...

Este sería como el archivo de entrada:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
 AAABBCEDETGHJKFRFGG
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Por ejemplo... si especifico una ventana de largo 5... deseo que me entregue algo así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
AAABB
AABBC
ABBCE
BBCED.....
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


y así sucesivamente...

Les agradecería mucho su ayuda...
barbara
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-01-12 13:49 @617

Publicidad

Re: Especie de ventana deslizante

Notapor explorer » 2011-01-12 15:07 @671

Bienvenido a los foros de Perl en Español, barbara.

Utilizando un bucle for() y la función substr() puedes extraer las subcadenas a la longitud que desees.

Por ejemplo.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use 5.010;
  3.  
  4. my $ADN = '
  5. GATCTCGCAACTCTTAATAAAGCTAATTCCTGCTAATTCGCTATACACTAAATCTTAATAAACTTGCTTC
  6. ATTATTTTCTCGATAAATATTTTATTTATAACAGTTTGTTAAATTGACAGGGTCCTTGCTAAGTTTCTAT
  7. ATACAACATAAACATACTATACGAAATAACATTTTTCTCAAGGTATGTAGAGTATAAATGCTCCAACGTG
  8. GCACAATTTCATTTCGTTTAGTTTACTAAAAACCCATATTCGCGTCGCACTCACACAGAATCTAGAGTTT
  9. AGTACATTTTACCGGCTCAACAATTAACCATTCAAATTGTATTTCAAGTATGAGTAACAATCGAATAAAA
  10. ';
  11.  
  12. $ADN =~ s/\n//g;
  13.  
  14. my $i;
  15. my $largo = 15;
  16.  
  17. for ($i = 0; $i < length $ADN; $i += $largo) {
  18.     say substr $ADN, $i, $largo;
  19. }
  20.  
  21. __END__
  22. GATCTCGCAACTCTT
  23. AATAAAGCTAATTCC
  24. TGCTAATTCGCTATA
  25. CACTAAATCTTAATA
  26. AACTTGCTTCATTAT
  27. TTTCTCGATAAATAT
  28. TTTATTTATAACAGT
  29. TTGTTAAATTGACAG
  30. GGTCCTTGCTAAGTT
  31. TCTATATACAACATA
  32. AACATACTATACGAA
  33. ATAACATTTTTCTCA
  34. AGGTATGTAGAGTAT
  35. AAATGCTCCAACGTG
  36. GCACAATTTCATTTC
  37. GTTTAGTTTACTAAA
  38. AACCCATATTCGCGT
  39. CGCACTCACACAGAA
  40. TCTAGAGTTTAGTAC
  41. ATTTTACCGGCTCAA
  42. CAATTAACCATTCAA
  43. ATTGTATTTCAAGTA
  44. TGAGTAACAATCGAA
  45. TAAAA
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Si se trata solo de imprimirlo, te vale con usar un format:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. my $ADN = '
  3. GATCTCGCAACTCTTAATAAAGCTAATTCCTGCTAATTCGCTATACACTAAATCTTAATAAACTTGCTTC
  4. ATTATTTTCTCGATAAATATTTTATTTATAACAGTTTGTTAAATTGACAGGGTCCTTGCTAAGTTTCTAT
  5. ATACAACATAAACATACTATACGAAATAACATTTTTCTCAAGGTATGTAGAGTATAAATGCTCCAACGTG
  6. GCACAATTTCATTTCGTTTAGTTTACTAAAAACCCATATTCGCGTCGCACTCACACAGAATCTAGAGTTT
  7. AGTACATTTTACCGGCTCAACAATTAACCATTCAAATTGTATTTCAAGTATGAGTAACAATCGAATAAAA
  8. ';
  9.  
  10. $ADN =~ s/\n//g;
  11.  
  12. write;
  13.  
  14. format STDOUT =
  15. ^<<<<<<<<<<<<<<~~
  16. $ADN
  17. .
  18.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Especie de ventana deslizante

Notapor barbara » 2011-01-12 15:34 @690

¡¡¡Muchas gracias!!! Me ha servido mucho...
Es como lo principal que necesitaba hacer...

Gracias, ¡me has ayudado mucho! :wink:
barbara
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2011-01-12 13:49 @617


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 17 invitados

cron