11-24-2015 06:34 AM - edited 11-24-2015 07:17 AM
Need help on importing raw file to SAS.
The example below shows how is the file:
011 30000092 10498100037500000000003000006274966080000018000 Condo 180,00 Ha 05/11/2015 13:16 Ha 031 34300000 39900000000000000000000000000023800000000000000 Fat Porto 794,02 Ha 05/11/2015 14:05 Ha 031 34000003 39994000000000000000000000000024100000000000000 car porto 2.568,42 Ha 05/11/2015 14:45 Ha 010 34000000 00190000090142509602911765526170266030000074031 carro 740,31 Ha 05/11/2015 07:46 Ha
If you see, the first five values of the fourth line, should be at the third line.
And the fourth line should begin in the 010.
The next textbox is how it should be:
031 34340033 39994000000000000000000000000024100000000000000 cartão porto 2.568,42 Ha 05/11/2015 14:45 Ha
010 34000000 00190000090142509602911765526170266030000074031 carro 740,31 Ha 05/11/2015 07:46 Ha
How can i solve this when i import the file ?
Thanks in advance
11-24-2015 06:51 AM
TBH, I would go back to source and ask them to provide a decent file. Should be part of the Import Agreement which you would have in place, that describing what data will be sent?
Your examples don't seem to match either, I cant find 34349340 in the first, and several of the data items seem to be different between the two. One option you could try is just to read the whole thing as $2000. then post process that line. I note the very long number, 3rd element, wouldn't be easy to use also. Myabe provide a datastep with some test data and required output.
11-24-2015 07:07 AM
I import every part of this file as strings.
The third part is a doc number and it is a string column.
It does make sence because this is how it is in my raw file.
This file is extracted with a robot.
The generated file is as shown before.
I need to import every part of this as strings, after all of this, i can change the formats, but what i need for now is a way to import when cases like this happens. And because some politicies they can't change the file to be generated in its right form.
11-24-2015 08:47 AM - edited 11-24-2015 08:49 AM
As it looks like: Your file structure gets messed up and a record gets distributed over more than one line. Or is this just how you're "looking" at your record?
If you're opening this text file in a decent editor like Notepad++: Is the "end of line" indicator at the end of the record or does this "vary"?
If you don't have a clean "end of line" indicator: What would identify a new record?
SAS is very flexible when it comes to reading text files; but we still need to determine the logic to be used to figure out when a new record starts.
Ideally: You have an interface contract where the record structure provided to you has been agreed upon. If that's not the case then you're in a lot of pain. You can probably code for the data "at hand" but then in the next data delivery something new happens and your code won't work. So here it's really about responsibility. Don't accecpt everything. Get an agreement from the data provider (=Interface contract).