# Problema Array

**URL:** <https://www.ruby-forum.com/t/problema-array/191335>\
**Category:** IT\
**Created:** [July 9, 2010, 7:34pm UTC](https://www.ruby-forum.com/t/problema-array/191335 "2010-07-09T19:34:21Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![cisco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ccd318/32.png) [@cisco](https://www.ruby-forum.com/u/cisco)\
**Post date:** [July 9, 2010, 7:34pm UTC](https://www.ruby-forum.com/t/problema-array/191335/1 "2010-07-09T19:34:21Z")

</div>

Salve, sto iniziando ad usare Ruby e mi sono trovato difronte a un  
problema che per un esperto sarÃ¡ sicuramente elementare.  
Devo scrivere un metodo che prende come primo argomento un file formato  
txt e che mostra come risultato sullo schermo un array di parole di  
seguendo questo modello.

token 1= La  
token 2= casa  
token 3= Ã¨

Il mio problema Ã¨ il seguente: il testo formato txt da dove attingo le  
parole Ã¨ un testo normalissimo…con piÃº parole in una linea…l’unica  
cosa Ã¨ che i punti sono separati dalle parole sempre da uno spazio; non  
so come poter caricare le parole su un array, ed avere come risultato le  
parole una in una linea diversa dall’altra…credo che sia necessario  
usare un’espressione regolare…credo che per avere i numeri in sequenza  
sia necessario anche usare un contatore del tipo  
n=1…non capisco bene…grazie.

---

<div class="post-metadata">

**Author:** ![cisco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ccd318/32.png) [@cisco](https://www.ruby-forum.com/u/cisco)\
**Post date:** [July 10, 2010, 10:31am UTC](https://www.ruby-forum.com/t/problema-array/191335/2 "2010-07-10T10:31:54Z")

</div>

Francisco M. wrote:

> Salve, sto iniziando ad usare Ruby e mi sono trovato difronte a un  
> problema che per un esperto sarÃ¡ sicuramente elementare.  
> Devo scrivere un metodo che prende come primo argomento un file formato  
> txt e che mostra come risultato sullo schermo un array di parole di  
> seguendo questo modello.
> 
> token 1= La  
> token 2= casa  
> token 3= Ã¨
> 
> Il mio problema Ã¨ il seguente: il testo formato txt da dove attingo le  
> parole Ã¨ un testo normalissimo…con piÃº parole in una linea…l’unica  
> cosa Ã¨ che i punti sono separati dalle parole sempre da uno spazio; non  
> so come poter caricare le parole su un array, ed avere come risultato le  
> parole una in una linea diversa dall’altra…credo che sia necessario  
> usare un’espressione regolare…credo che per avere i numeri in sequenza  
> sia necessario anche usare un contatore del tipo  
> n=1…non capisco bene…grazie.

Farlo in ruby, php, java, c o perl Ã¨ lo stesso, quel che conta Ã¨ aver  
bene in chiaro l’algoritmo. Poi a seconda del linguaggio possono  
cambiare alcuni dettagli, ma non la sostanza, che Ã¨ elaborare il testo  
linea per linea, tagliare le linee in corrispondenza dei caratteri di  
punteggiatura e stampare quello che ci sta in mezzo.

In ruby l’algoritmo potrebbe essere questo

cnt = 1  
File.open(“testo.txt”).each\_line do |line|  
line.chomp.split(/[.,: \t’]/).each do |word|  
next if word == “” # 2 o piÃ¹ caratteri di punteggiatura consecutivi  
puts “token #{cnt} = #{word}”  
cnt += 1  
end  
end

Paolo
