2010-07-05 7 views

Répondre

4

Suppose un fichier nommé counter.txt dans le même répertoire que le script est appelé à partir. Le fichier ne devrait avoir rien d'autre que le numéro qui s'y trouve.

File.open 'counter.txt' , 'r+' do |file| 
    num = file.gets.to_i 
    file.rewind 
    file.puts num.next 
end 

Fondamentalement, il opens the file « counter.txt » pour reading and writing starting at the beginning of the file Il utilise la forme de blocs d'ouverture afin que le fichier est fermé quand il est fait. Il gets the number puis converts it to an integer pour obtenir le nombre actuel. Il rewinds the file pointer de sorte qu'il est à nouveau au début du fichier (parce que nous voulons écrire sur l'ancien numéro) Puis prints out to the file le nombre incrémenté.

+0

pour la première fois. si je veux créer un fichier et écrire 0 dedans. il lance une exception car nous ouvrons avec le mode r +. comment gérer cette situation? – anusuya

+0

'$ touch counter.txt' –

+0

Existe-t-il un moyen de verrouiller le fichier, donc cela fonctionnera si plusieurs processus exécutent le script? –

Questions connexes