views:

674

answers:

1

I am trying to parse a set of lines read from a file in Applescript.

This is how my code looks:

my status_dialog(indexData)
set AppleScript's text item delimiters to return
set indexFreq to (text items 1 thru 1 of indexData)

indexData contains a set of lines. The line delimiter is not working. indexFreq returns me the whole set of lines again instead of the first one.

I am a newbie in here and the online resources arent helping me in this.

Many thanks! Pradeep

+1  A: 

Your code should work as expected. The problem may be that return is not the correct character for this particular set of lines. Line breaks can be carriage return, line feed or both, depending on the program or system that created the file.

You can try using different characters instead of return:

tell me to set the text item delimiters to (ASCII character 10) --// LF
tell me to set the text item delimiters to (ASCII character 13) --// CR

Also, to make sure the rest of your code is set up proprly, do a simple test:

set test_string to "thisQisQaQtest"
set the text item delimiters to "Q"
return text items of test_string

This should produce the following (in your AppleScript console):

{ "this", "is", "a", "test" }

e.James
Either of these give me an error: 'Finder got an error: Can't set text item delimiters to "".'I think it is converting the ASCII characters to the code itself. To give you an update I used linefeed instead of return and looks like it is working. I am not sure it leaves behind the carriage return if the file is delimited by both \r\n. Many thanks!
Pradeep
there is new line beginning between the quotes.
Pradeep
Sorry, that error happens because of without "tell me to" (see my edit). Glad to hear you got it working :)
e.James