Changeset 240


Ignore:
Timestamp:
07/28/2010 10:41:32 AM (12 years ago)
Author:
marcus
Message:

File read access for command procedures.

Location:
SHX/trunk/src/SeismicHandler
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/src/SeismicHandler/core/parser.py

    r238 r240  
    253253                stream = inputdata 
    254254            elif type(inputdata) == str: 
    255                 if not inputdata.endswith(".SHC"): 
     255                # no extension -> add default 
     256                try: 
     257                    _ = inputdata.index(".") 
     258                except ValueError: 
    256259                    inputdata = inputdata + ".SHC" 
    257260 
     
    498501        "NUMBER": "#", 
    499502        "PI": "3.1415926535897931", 
    500          
     503        "SH_ID": lambda: "SH_%i_" % os.getpid(), 
     504        "X": "$X", # really no idea for what this is good for... 
     505 
    501506        # XXX todo 
    502507        "DSPTRCS": None, 
     
    517522        "MARKSTYLE": None, 
    518523        "PMSTYLE": None, 
    519         "SH_ID": None, 
    520524 
    521525        # special treatment necessary 
    522526        # syntax is HEXCHAR3B 
    523527        "HEXCHAR": None, 
    524  
    525         # no docs 
    526         "X": None, 
    527528    } 
    528529 
     
    627628 
    628629    def __handleFile(self, name): 
    629         raise NotImplementedError 
     630        # split line count (if any) 
     631        try: 
     632            f, l = name.split("(") 
     633        except IndexError: 
     634            l = 1 
     635        else: 
     636            l = int(l[:-1]) 
     637 
     638        f = self._translate(f) 
     639 
     640        try: 
     641            _ = f.index(".") 
     642        except ValueError: 
     643            f += ".STX" 
     644 
     645        for cnt, line in enumerate(open(f, "r").readlines()): 
     646            if cnt + 1 == l: 
     647                return line.strip() 
     648 
     649        return str(cnt+1) 
    630650 
    631651class symbol(object): 
  • SHX/trunk/src/SeismicHandler/tests/data/SCRIPT2.SHC

    r236 r240  
    1 echo script2: "foo 
     1echo script2: "foo #1 #qux 
    22sdef bar /global 42 
    33return 
  • SHX/trunk/src/SeismicHandler/tests/test_parser.py

    r239 r240  
    214214        self.assertEqual(res, expect) 
    215215 
     216    def test2FileAccess(self): 
     217        """ 
     218        Get number of lines in file, read from file. 
     219 
     220        File name is saved in a user symbol. 
     221        """ 
     222        script = """ 
     223        sdef out %s 
     224        echo line1 
     225        echo line2 
     226        echo_ch 
     227        echo_ch "out 
     228        echo %%"out(0) 
     229        echo %%"out(2) 
     230        """ % self.outfile 
     231        expect = "LINE1\nLINE2\n2\nLINE2\n" 
     232 
     233        res = self.callScript(script) 
     234        self.assertEqual(res, expect) 
     235 
    216236    def testScript1(self): 
    217237        """ 
Note: See TracChangeset for help on using the changeset viewer.