timport recdelim

Post Reply
brian18
Posts: 23
Joined: Mon Jan 29, 2001 10:18 am

timport recdelim

Post by brian18 »

I'm writing a script for timport of data. The data record will have multiple records per file with multiple carriage returns per record. There is also the possibility of double quotes in data fields. My current schema looks like this:

<$schema =
"database /local/texisdb/otnDB
table items
csv ||
multiple
keepfirst
datefmt x, dd mmm yyyy HH:MM:SS
# name type tag default_val
field title varchar(20) 1
field inventors varchar(20) 2
field uniqID varchar(16) 3
field ipStatus varchar(20) 4
field devPhase varchar(20) 5
field stateOfResearch varchar(20) 6
field patentStatus varchar(16) 7
field patentType varchar(16) 8
field patentNumber varchar(16) 9
field dateIssued varchar(8) 10
field licAvail varchar(16) 11
field relLink varchar(20) 12
field keywords varchar(32) 13
field description varchar(32) 14
field applications varchar(32) 15
field advantages varchar(32) 16
field abstract varchar(400) 17
field categories varchar(24) 18
field submittedBy varchar(16) 19
field webAddr varchar(24) 20
field itemType varchar(8) 21
field organization varchar(24) 22
field contact varchar(80) 23
field other varchar(80) 24
">

Right now every carriage return will break apart the fields. Is there a way to import this data without ending the records on \n's. I tried using recdelim @@, but the carrage returns still broke apart the data.

Thanks!!!
User avatar
mark
Site Admin
Posts: 5519
Joined: Tue Apr 25, 2000 6:56 pm

timport recdelim

Post by mark »

By definition, line breaks are the record delimiters in csv data. Fields with line breaks within them must be quoted. Internal quotes must be escaped by doubling them.

field|"field with
line breaks and ""quoted"" text"|field

If your data does not follow those rules, use recexpr instead of csv.

recexpr >>[^\x0a|]+||=!||*||=!||*||=[^\x0a]*\x0a
# name type tag default_val
field field1 varchar(10) 1
field field2 varchar(80) 3
field field3 varchar(10) 5
field field4 varchar(10) 7
Post Reply