Brand new to Applescript and trying to take two text files, read in one line at a time from each and merge the result with a delimiter into a new file. I got it to where it could do one line (been reading around on this forum… thanks!)
Now I’ve put a loop in and horked the whole thing… not sure how to get a line count. And I can’t seem to get it to copy the result so I can paste it into a new BBEdit doc… following the “copy” docs as best I can, but it ain’t working. Any tips? TIA
set file_one to choose file with prompt “Select the first file.”
set file_two to choose file with prompt “Select the second file.”
set f1_reader to (read file_one using delimiter return)
set f2_reader to (read file_two using delimiter return)
set tot_lines to number of lines in f1_reader – Not sure how to get total count here
set x to 0
if x <= tot_lines then
set x to (x + 1)
set file_three to item x of f1_reader & “|” & item x of f2_reader
end if
– How can I copy file_three to BBEdit?
I just get this as a result so it ain’t looping (I don’t know how yet to echo stuff… first day with AS):
“Mine Hill Trail|44947001.CT.Hike-1.gif”
I wish I could suppress the quotes to, but that’s a super simple grep job after the fact.
:?:
The crux of your problem is that you’re repeatedly setting file_three to the concatenation of the two lines - each time overwriting the previous contents of file_three. You need to append to the end of file_three to keep the previous contents.
There’s also an easier way to do this repeat loop:
set tot_lines to number of items in f1_reader -- reading a file using delimiters gives you a list, so 'number of items' tells you the number of lines in this case
-- start off with a blank line
set file_three to ""
repeat with lineNum from 1 to tot_lines
set file_three to file_three & item lineNum of f1_reader & "|" & item lineNum of f2_reader & return
-- file_three now contains the concatenation of the two lines appended to the previous contents
-- note that I've appended a return character to it
end repeat
so at this point ‘outputText’ the the complete combination of the two text files:
Now, this tells BBEdit to make a new document using file_three as the initial contents.
tell application "BBEdit 6.5"
make new document with properties {text: file_three}
end tell
Note that the code may fail if file2 doesn’t contain at least the same number of lines as file 1.
Oh, and don’t worry about the quotes - that’s just how the Script Editor shows you have a string as opposed to some other object time (integer, date, etc.)