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.
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
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.