The Origin Forum
File Exchange
Try Origin for Free
The Origin Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ | Send File to Tech support
 All Forums
 Origin Forum
 Origin Forum
 Single ascii import into different wks

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Anti-Spam Code:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkUpload FileInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
Markus Posted - 11/08/2001 : 04:44:17 AM
I want to import a single ascii-file into different worksheets by using the 'when non-numeric is found in numeric fields-start new worksheet' feature in the ascii-import options. The spectral-data-file looks like the following lines:
# 06.11.2001 12:24:00
304.448 237.000 220.000 269.000
307.782 272.000 253.000 299.000
311.114 310.000 262.000 317.000
.....
1124.781 413.000 360.000 384.000
1127.961 405.000 374.000 390.000
1131.141 420.000 372.000 396.000
1134.320 412.000 376.000 395.000
# 06.11.2001 12:24:05
304.448 242.000 214.000 270.000
307.782 268.000 252.000 301.000
311.114 318.000 266.000 325.000
314.446 355.000 290.000 359.000
317.778 425.000 322.000 409.000
.....
1124.781 427.000 382.000 398.000
1127.961 416.000 376.000 393.000
1131.141 426.000 376.000 401.000
1134.320 420.000 376.000 394.000
# 06.11.2001 12:24:10
304.448 236.000 217.000 271.000
307.782 273.000 258.000 310.000
311.114 313.000 264.000 322.000
.....
During import I want to rename the wks with the header line or a string of substrings representing the header (which is yyyy.mm.dd hh:mm:ss), like Ammddhhmmss. Import into new wks works, but where to place the renaming script. I thought it must be somewhere in a loop in the file.ogs but I can't find it. And how to access the header line that caused the new worksheet. Is it stored in a string variable?
Thanks for any help

Markus
13   L A T E S T    R E P L I E S    (Newest First)
Mike Buess Posted - 03/21/2002 : 12:26:57 PM
Sasi,

If you just want to keep the last line out of the column change the for loop to this...

for(ii=1;ii>0;ii++)
{
%A=%[%Z,@ii+1];
if(%A=="") break;
%(%H,1,ii)=%[%Z,@ii];
};

BTW, if your header always has N lines you can replace the for loop with

loop (ii,1,N-1) {%(%H,1,ii)=%[%Z,@ii]};

Mike Buess
Origin WebRing Member
sasi245 Posted - 03/21/2002 : 11:59:07 AM
Thanks Mike,
It's working.
Another thing is I have to Delete the last text line in the header.I tried assuming
%A=%[%Z,@ii-1]; in your script but I failed to do so.
Suggest me. Thanks for your help....Sasi
Mike Buess Posted - 03/21/2002 : 08:48:49 AM
Sasi,

This script should work. It assumes that the worksheet is active. The second and third lines might be unnecessary and you might want to name the first column differently.

wo -i 0 Header; // Insert column at beginning
wo -t 1 2; // Set type as 'disregard'
wo -f 1 2; // Set format as 'text'
%Z=header.text$;
for(ii=1;ii>0;ii++)
{
%A=%[%Z,@ii];
if(%A=="") break;
%(%H,1,ii)=%A;
};

You could use it as the worksheet script for the template (Tools | Worksheet Script) and check Run Script Automatically after Import.

Mike Buess
Origin WebRing Member

Edited by - Mike Buess on 03/21/2002 08:53:55
sasi245 Posted - 03/21/2002 : 08:19:12 AM
hi laurie;
Thanks .That works fine.
One question,Is there any procedure to insert this header data in to the first column of each wks?

Means by inserting new rows and put this text data in first column line by line?
Thanks once again...Sasi
Laurie Posted - 03/19/2002 : 10:27:04 AM
If you use the FUM, ideally you'd know the number of rows of data or you'd have a line in the file that stores this information (so that you can then read this).

You'd have to write your script so that you check the return value and then that would depend upon whether the line was data or text. This checking process will slow down the import routine.

If you use File:Import ASCII menu option, then on your worksheet add a text label. It doesn't matter what the text says because it will get replaced with the header information. Open Label Control for this text object by Alt.+double-clicking on it and rename it 'header'. Now when you import, for each new worksheet created, you'll see the following text:

Table1
Voltage =0.0213V,
Current =....,
Frequency =..;
..(up to 10 parameters)

You can then write a LabTalk script to parse out the text in order to label your columns (wks.col1.label$="mylabel") and rename your worksheets (win -r %H newname;)

Laurie

OriginLab Technical Support
sasi245 Posted - 03/19/2002 : 08:36:29 AM
Hi Laurie,
I am getting the new worksheet,if I use ANSII options.But my problem is I have to rename each worksheet.Which at present I am not able to do with Ansii options.And second is I want some text data in the first column.In detail my table look like
Table1
Voltage =0.0213V,
Current =....,
Frequency =..;
..(up to 10 parameters)
(Then numeric data starts)
I want the first 10 text fields ,which are different for each Table, in first columns of each worksheet.If I can do this with ANSII options Please let me know..
Thanks for your help...sasi
Laurie Posted - 03/18/2002 : 09:56:33 AM
You say that the ASCII Import Options are not providing the desired results. Can you explain what you get and what you want? With the menu, you do get a new wks for each table?

Laurie

OriginLab Technical Support
sasi245 Posted - 03/18/2002 : 07:04:42 AM
HiLaurie,
Thanks for the reply.My problem is Table1 data should come into one wks and table2 data into another wks like that.Its not just open a new wks.I tried File:Import ASCII Option,but its not producing desired results.
So I want to write a Import Routine.
Thanks for any help....Sasi
Laurie Posted - 03/15/2002 : 11:23:18 AM
It depends upon what you're trying to do. If you are only interested in creating new worksheets when non-numeric data is found you can just use the ASCII Import Options and you don't need to write your own import routine using the FUM. And it doesn't matter that the number of rows are not the same. Have you tried just using the menu, File:Import ASCII?

OriginLab Technical Support
sasi245 Posted - 03/15/2002 : 10:01:50 AM
Hi
I also want to import Single ansii file into different wks on 'when non-numeric is found in numeric fields-start new worksheet', same as Markus.But in My case no. of rows are not fixed.I think I have to get the no. of end numeric row and loop through those rows as in the above program.
I want your help in this regard.
Thank You....sasi



Laurie Posted - 11/12/2001 : 1:06:17 PM
Hi Markus,

Looks good. Yes, using the FUM, File Utilities Module, in OriginPRO, you'll have more control over how the file is brought in.

Laurie

OriginLab Technical Support
Markus Posted - 11/12/2001 : 04:18:27 AM
Hi Laurie, this works fine;
I played a little with the FUM from Origin Prof. and got the following:

getfile *.spk; #select spectra
hfile=file.open(%B%A,0); #open file
file.listsep("\t"); #separator Tab
win -c Data1; #close wks

m=1; #initial value
i=0; #counter for No. of spectra

for (;m>0;)
{
m=file.lread(M);#read the header in %M
if ($(m)==0) {file.close();break;}; #EOF reached

win -t data origin; #new wks for the data

%M=A%[%M,11:12]%[%M,6:7]%[%M,3:4]%[%M,14:15]%[%M,17:18]%[%M,20:21]; #this is the new wks name
win -r %H %M; #rename wks and loop through the 256 data rows, import them into cols 1 to 4

loop(row,1,256)
{
tokensread=file.readrow(%H,4);
};
i+=1; # increase counter for spectra
};
file.close();


Thank you
Markus

Edited by - Markus on 11/12/2001 08:55:20
Laurie Posted - 11/08/2001 : 12:37:45 PM
You will need to create a text label on the worksheet and name it header. (you can even hide the object so that is is not visible) The header for each worksheet will then be placed as the text for this header object.

You will then have to run a script after all the data is brought in - the code that handles importing into a new worksheet when non-numeric is found is all handled internally. You can get the header text by using the following:

%Z=header.text$;

You'll have to loop through all the worksheets...if you have further questions about how to do this, please feel free to ask.

Thanks,
Laurie

OriginLab Technical Support

The Origin Forum © 2020 Originlab Corporation Go To Top Of Page
Snitz Forums 2000