[ruby-it] Gestione testo con ruby e gtk
gabriele renzi
surrender_it a yahoo.it
Lun 3 Dic 2007 20:13:36 CET
--- Daniele Volpe <voldaniele a gmail.com> wrote:
> Intanto grazie per la risposta, ho provato a fare
> come mi hai detto ma
> ancora non mi funziona, mi da sempre lo stesso
> problema.
figurati, è un piacere essere utili.
Ma non credo ti dia lo stesso errore, perché ce n'è
uno nuovo ;)
Quando scrivi nel file non ci scrivi il contenuto del
buffer, ma l'oggetto buffer.
La riga
database.write(testobuffer)
è equivalente a
database.write(testobuffer.to_s)
invece dovrebbe essere
database.write(testobuffer.text)
Una volta che hai sistemato questo errore, c'è un
comportamento che non so se è voluto: quando effettui
la scrittura, sei già alla fine del file (perché lo
hai letto all'inizio, e sei arrivato fino alla fine),
quindi qualsiasi scrittura sarà un'aggiunta, e non una
modifica. Se vuoi sostituire il contenuto del vecchio
file con il nuovo buffer devi effettuare un
File#rewind() riportando il puntatore interno del file
all'inizio.
Infine: non penso che questo faccia ciò che credi:
if File.exist?("database.txt") == true
# qua apri in lettura (r) e scrittura (+)
database = open("database.txt","r+")
puts "Apro il file"
else
#qua apri in sola scrittura (w)
#creando il file se esiste (+)
database = File.new("database.txt", "w+")
end
File.new() non crea un nuovo file, crea un nuovo
oggetto file esattamente come open().
Per aprire un file in lettura/scrittura, e crearlo se
non esiste. basta che tu faccia
file = open('database.txt', 'rw+')
> Sicuramente faccio qualche procedimento sbagliato,
> sto cercando di
> imparare il più possibile.
beh, sei sulla buona strada, basta che fai un po' più
attenzione a cosa c'è effettivamente scritto quando
hai un errore ;)
--
Goto 10: http://www.goto10.it
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info
__________________________________________________________
Sent from Yahoo! - the World's favourite mail http://uk.mail.yahoo.com
Maggiori informazioni sulla lista
Ml