How do you join lines in a container so it becomes one line, so you can use split?
Sadhunathan Nadesan
sadhu at castandcrew.com
Wed Jun 11 11:28:00 EDT 2003
How do you join lines in a container?
Question: I have a container which contains an sql cursor, ie, a number
of lines of data (in this case 2 fields separated by the pipe symbol).
I want to place this in an indexed array so I can use it in a replacement
algorithm. Whenever the index field (field 1) is found in some data,
replace it with the indexed field (field 2).
So, I want to use the split command to create this array, but trying to
split on return, or newline, or cr, or numToChar(10) ... this is a Unix
system .. does not work.
Therefore I tried to replace the end of line character with something
else in the container so I could do this split. The "=" symbol.
That did not work either.
So I came up with the hokey method below .. putting the data out into an
external file and basically running a tr on it to replace the newlines
with =, then reading it back in to do the split. Seems pretty hokey to
me, why can't I just do it in place? Read in the sql data directly and
split it? No external files. But that does not seem to work.
Oh well, thanks in advance for any help.
Sadhu
ps, code snippet below illustrating hokey solution.
on sqlFetch
put "select audio_date, audio_url from audio;" into sqlQuery
put sqlQuery into url "file:/tmp/titlelist.sql"
put "psql cybertalks -qt -f /tmp/titlelist.sql > /tmp/titlelist.dat" into command_string
set shellCommand to "/bin/sh"
put shell(command_string)
replace numToChar(10) with "=" in url "file:/tmp/titlelist.dat"
put url "file:/tmp/titlelist.dat" into sqlData
split sqlData by "=" and "|"
put keys(sqlData) into keywords
repeat for each line x in keywords
put x && " :---: " && sqlData[x] & cr
end repeat
end sqlFetch
More information about the metacard
mailing list