Forum: Italian Ruby user group Rinominare file con ruby

10959887d7829e16514cc33ad6bce834?d=identicon&s=25 Angelo Raffaele L. (angeloraffaele_l)
on 2013-08-02 20:06
Salve a tutti, ho un programmino molto semplice che sto cercando di
realizzare con ruby, questo programmino altro non fa che prendere degli
input dall'utente, memorizzarli, prendere il contenuto di un altro file,
memorizzare anch'esso e in fine creare un unico file con i dati immessi
dall'utente e quelli prelevati dal file esterno.

Sino a qui è stato elettrizzante riuscirci con una certa facilità, la
cosa che adesso mi sta spremendo le meningi e che, purtroppo, non riesco
a far scegliere il nome del file creato in output.

Dato che per la creazione del file utilizzo il seguente codice:

File.open("nuovofile.txt", 'w') do |scrivi|
 codice
 codice
end....

vorrei passare al posto di "nuovofile.txt" un nome preso in input
dall'utente o in alternativa, sempre tramite input dell'utente,
rinominare il file "nuovofile.txt"

Mi sono letto più di una volta questa pagina:
http://www.ruby-doc.org/core-2.0/File.html , provando e riprovando, ma
sino ad ora non ne sono venuto a capo, potreste aiutarmi cortesemente?
Grazie.
244c19d4c5884a6f5495b2b95c277c18?d=identicon&s=25 Monica Giambitto (Guest)
on 2013-08-03 01:20
(Received via mailing list)
On Aug 2, 2013, at 8:06 PM, "Angelo Raffaele L."
<angeloliso85@gmail.com> wrote:

> Sino a qui  stato elettrizzante riuscirci con una certa facilit, la
> cosa che adesso mi sta spremendo le meningi e che, purtroppo, non riesco
> a far scegliere il nome del file creato in output.

Ciao Angelo, sono contenta che ruby ti elettrizzi :)

> vorrei passare al posto di "nuovofile.txt" un nome preso in input
> dall'utente o in alternativa, sempre tramite input dell'utente,
> rinominare il file "nuovofile.txt"

Puoi ottenere il primo comportamento con

File.open(ARGV[0]) do |scrivi|

ARGV  l'array che contiene i valori che passi da linea di comando al tuo
script.

In alternativa c' il metodo di classe File.rename('vecchio', 'nuovo')...

Se invece intendi un'interazione tra la console e l'utente, puoi usare
STDIN.gets per prendere i valori passati da console dall'utente.

Qui http://zetcode.com/lang/rubytutorial/io/ trovi un tutorial sull'IO
in ruby e qui
http://stackoverflow.com/questions/12041492/ruby-w...
una spiegazione della differenza tra STDIN.gets e il semplice gets.

Spero di esserti stata utile, in caso contrario continua a chiedere :)

--
Monica Giambitto
Developer ~=[,,_,,]:3 Usability Queen
@ freego Network - www.freegoweb.it
m.giambitto@freegoweb.it
m. + 39 392 76 51 040
10959887d7829e16514cc33ad6bce834?d=identicon&s=25 Angelo Raffaele L. (angeloraffaele_l)
on 2013-08-03 11:35
La soluzione era molto semplice:

print "scegli il nome del file: "
nomefile=gets.chomp
File.open nomefile, 'w' do |scrivi|
codice
codice
end....

grazie per il supporto.
10959887d7829e16514cc33ad6bce834?d=identicon&s=25 Angelo Raffaele L. (angeloraffaele_l)
on 2013-08-03 11:36
Angelo Raffaele L. wrote in post #1117581:
> La soluzione era molto semplice:

Anche se ci sono arrivato dopo ore e ore di tentantativi. :D
244c19d4c5884a6f5495b2b95c277c18?d=identicon&s=25 Monica Giambitto (Guest)
on 2013-08-03 16:16
(Received via mailing list)
L'importante  esserci riuscito!
Good job :D

Monica
Sent from my iPhone
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.