Harry Nash <hjnash@adistantstar.com> writes:
I am new to coding, I have tried to place a number of data strings into
one variable
This is not possible. By definition a variable has only one value.
This is not quantic computing.
What you could do is to put the values in some object, and put that
object in the variable. You may choose between a custom object, a
hash-table, an array, a list, etc. For example:
filename = "/tmp/example.mp3"
mp3_title = "Example"
mp3_artist = "Musician"
file_link = [ Dir.pwd, filename, mp3_title, mp3_artist ]
file_link[0]
file_link[1]
file_link = { :directory => Dir.pwd,
:file => filename,
:title => mp3_title,
:artist => mp3_artist }
file_link[:directory]
file_link[:file]
class Cons
attr_accessor :first,:rest
def initialize(f,r)
@first=f
@rest=r
end
def Cons.list(*objects)
result = nil
objects . reverse . each { | object | result = Cons.new(object,result) }
result
end
# ...
end
file_link = Cons.list( Dir.pwd, filename, mp3_title, mp3_artist )
file_link . first
file_link . rest . first
but I am missing something in the format. See example
below.
What format? Are you speaking of the syntax of the language, or do
you want to format a string? I ask because the expression you show us
is not even syntactically valid...
Note each part of the line after = does have a real value,
I just can't format the string.
file-link = Dir.pwd, "#{filename}", "#{mp3-title}", "#{mp3-artist}"
So, assuming you want to build a new string formated with these
elements, separated by commas, you can do that with sprintf:
file_link = sprintf("%s, %s, %s, %s", Dir.pwd, filename, mp3_title, mp3_artist )
If you have several lines to format, you may want to specify column widths:
file_link = sprintf("%-20s, %-20s, %-30s, %s", Dir.pwd, filename, mp3_title, mp3_artist )
Also, Ruby is rather more limited than Lisp, you cannot put a dash
inside an identifier.
···
--
__Pascal Bourguignon__