back slash question.


    Mar 02 2006 | 3:32 am
    Hi, I'm trying to add (back slash) in front of any " mark.
    I'm need to send a message which is
    event f 1 0 524288 1 "Macintosh HD:loop.aif" 0 0 0
    to external called Csound~. But when I send this message
    to Csound~, "" didn't get transfered so I get an errors.
    please look at attached file.
    it works if I put in front of " then everything is fine
    but I don't want(and I shouldn't for stand alone issue) do
    it manually. So how could I add to " automatically?
    thanks for reading the post

    • Mar 02 2006 | 4:21 am
      WonSeok wrote:
      > it works if I put in front of " then everything is fine
      > but I don't want(and I shouldn't for stand alone issue) do
      > it manually. So how could I add to " automatically?
      regexp and careful use of escaping. You're working with 'active'
      characters ["], so it's going to look messy. You may also need to
      compensate for max-syntax-related transformations after output too.
      If you're constructing the initial message yourself, then sprintf should
      work to combine the components and add the necessary syntax. You will
      still need to keep in mind what happens to the message after it
      re-enters the normal max syntax universe.
    • Mar 02 2006 | 4:25 am
      You cannot, generally. This goes for any other programming language
      that requires you to escape quotes. There is no way to process a
      message/string with an unescaped quote in it because, to the
      language's parser (the thing that turns your code/path into something
      that makes sense to the language), the quote is syntax. You need to
      escape it to make it part of the message. In Max, quotes are used to
      designate symbols (otherwise you'd have to escape every space in a
      symbol).
      If you need to escape tons of messages like this to load into Max,
      I'd suggest you do it in another program and then stick them into
      Max. The other alternative is not putting in any quotes at all, and
      then inserting them escaped later on by finding all of the bits with
      non-numeric characters after "event f" and lumping them together.
      This seems like a waste though -- Ideally you want to have it done
      upfront. Max is not properly equipped to deal with this.
      Assuming you have a file full of lines that need quotes to be
      escaped, you can do something like this in Io (www.iolanguage.com):
      InputFile := File clone openForReading()
      OutputFile := File clone openForUpdating()
      while(line := InputFile readLine,
      OutputFile write(line asMutable replaceSeq(""", "\""))
      OutputFile write("n")
      )
      Other languages offer similar utility.
      - John
    • Mar 02 2006 | 9:10 pm
      Thanks guys.
      I'll try those methods.