path1="c:/kabab.txt"
path2="c:/kabab2.txt"
for v in 1..2
puts "#{path}"#{v}"
end
Je voudrais créer un fichier, mais je ne suis pas capable de le faire.comment résoudre cette équation en ruby
path1="c:/kabab.txt"
path2="c:/kabab2.txt"
for v in 1..2
puts "#{path}"#{v}"
end
Je voudrais créer un fichier, mais je ne suis pas capable de le faire.comment résoudre cette équation en ruby
Dans Ruby vous ne pouvez pas récupérer la valeur d'une variable locale de son nom en utilisant l'approche que vous avez essayé. Il y a instance_variable_get
pour les variables d'instance mais il n'y a pas d'équivalent pour les variables locales autant que je sache. Est une chaîne contenant le nom de votre variable, donc si vous estimez qu'en utilisant eval
le résultat de l'eval sera la valeur de la variable. Par conséquent, vous pouvez faire quelque chose comme:
filename = eval("path#{v}")
open(filename, 'w')
mais vous devez toujours être prudent lors de l'utilisation eval
en raison de problèmes de sécurité potentiels.
Au lieu de cela, je mettrais la liste des fichiers dans un tableau
paths = ["c:/kabab.txt", "c:/kabab2.txt"]
et à faire:
paths.each do |path|
f = open(path, 'w')
# use file here
end
ou si tous les fichiers partagent un préfixe commun et l'extension puis quelque chose comme:
prefix = "c:/kabab"
extension = ".txt"
for v in 1..2
filename = "#{prefix}#{v}#{extension}"
# use filename here
end
oh merci mikej vous savez vraiment très bien ruby j'ai aussi posé des questions sur platinfo ["telnet_id"] J'espère que vous vous souvenez de moi – Milan
mikej la dernière u dit va créer un nom de fichier différent comme kabab1.txt et kabab2.txt je veux créer un nom de fichier différent en utilisant la boucle ?? – Milan
@amit Oui, je me souviens de votre autre question. Les exemples que j'ai donnés utilisent une boucle pour créer les différents noms de fichiers. S'il vous plaît pouvez-vous expliquer un peu plus si ces suggestions ne font toujours pas ce que vous voulez. – mikej