SAS EG 3.0! That means you're still running your code under SAS 8.
There would be the option "guessingrow" but its best implementation with the least issues is under 9.2 only.
http://www2.sas.com/proceedings/sugi30/038-30.pdf
http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/a000312413.htm
"...but its not taking the actual data type and width as in the actual i/p text file..."
The question is: What is the actual data type and width? You should know that in advance (record description or the like). Even if SAS guessing does the right thing it doesn't mean that the type and length will be appropriate for the next time you read such a source csv file.
If this is a once-off job then I would let the import wizard create the source and then start to alter the informats very generouse (mainly: longer characters), run the code and if it falls over apply the change for the var where you had the problem (may be then running with a firstobs=... starting at the point where your code fell over the last time).
If this is something regular: You should try and get a record description from the producer of the source data. Everything else is a work-around.
You can of course write a piece of code which scans the full source data in a "data _null_ step" and determines the maximum length and data type. You would then save the results into macro variables (the informats/lengths) and use them in a second data step where you actually load the source data into a SAS dataset. But as you can see: This involves some coding.
Try and "Google" a bit: I would expect that someone already solved a comparable problem.
HTH
Patrick