Hello, I have a .txt-file (called number.txt) containing only 2 rows, where the first row is the headline "Number", and where the second row is a number of 1000 digits. I try to import this number by using the following proc import step: proc import datafile="C:\Documents and Settings\Desktop\Euler\number.txt" out = number replace; run; This gives me the following log error: 2611 proc import datafile="C:\Documents and Settings\Desktop\number\number.txt"; ERROR: Output SAS data set must be provided. NOTE: The SAS System stopped processing this step because of errors. NOTE: PROCEDURE IMPORT used (Total process time): real time 0.00 seconds cpu time 0.00 seconds 2612 out = number 2613 replace; 2614 run; 2615 proc import datafile="C:\Documents and Settings\Desktop\number\number.txt" 2616 out = number 2617 replace; 2618 run; 2619 /********************************************************************** 2620 * PRODUCT: SAS 2621 * VERSION: 9.1 2622 * CREATOR: External File Interface 2623 * DATE: 02APR12 2624 * DESC: Generated SAS Datastep Code 2625 * TEMPLATE SOURCE: (None Specified.) 2626 ***********************************************************************/ 2627 data NUMBER ; 2628 %let _EFIERR_ = 0; /* set the ERROR detection macro variable */ 2629 infile 'C:\Documents and Settings\Desktop\number\number.txt' delimiter='09'x MISSOVER DSD lrecl=32767 firstobs=2 ; 2630 informat Number best32. ; 2631 format Number best12. ; 2632 input 2633 Number 2634 ; 2635 if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */ 2636 run; NOTE: The infile 'C:\Documents and Settings\Desktop\number\number.txt' is: File Name=C:\Documents and Settings\Desktop\number\number.txt, RECFM=V,LRECL=32767 NOTE: Invalid data for Number in line 2 1-1000. RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0 2 7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843 101 8586156078911294949545950173795833195285320880551112540698747158523863050715693290963295227443043557 201 6689664895044524452316173185640309871112172238311362229893423380308135336276614282806444486645238749 301 3035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776 401 6572733300105336788122023542180975125454059475224352584907711670556013604839586446706324415722155397 501 5369781797784617406495514929086256932197846862248283972241375657056057490261407972968652414535100474 601 8216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586 701 1786645835912456652947654568284891288314260769004224219022671055626321111109370544217506941658960408 801 0719840385096245544436298123098787992724428490918884580156166097919133875499200524063689912560717606 901 0588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450 1000 Number=. _ERROR_=1 _N_=1 NOTE: 1 record was read from the infile 'C:\Documents and Settings\Desktop\number\number.txt'. The minimum record length was 1000. The maximum record length was 1000. NOTE: The data set WORK.NUMBER has 1 observations and 1 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds Errors detected in submitted DATA step. Examine log. 1 rows created in NUMBER from C:\Documents and Settings\Desktop\number\number.txt. ERROR: Import unsuccessful. See SAS Log for details. NOTE: The SAS System stopped processing this step because of errors. NOTE: PROCEDURE IMPORT used (Total process time): real time 0.17 seconds cpu time 0.06 seconds If I reduce the number in the text file, I tried 20 digits or so, it does work fine. What I really want to do is to create an array of length 1000, where each digit of the number occupies an entry of the array. If I restrict the number in the .txt-file to have only 26 digits (for instance), then I use the following code: data bla; set number; array digit(1:26) digit1 - digit26; do i = 1 to 26; digit = substr(number,i,1); end; run; The only problem is that the number in the number dataset is written as "7.3167177E25", so the array elements will end up being "7", ".", "3", "1", ..., "1", "7", "7", ".", "2", "5", ".", ".", ".", ..., which is not what I was hoping for. So my question is two-fold. 1) How do I get proc import to read in the number from the data set even though it has 1000 digits? 2) How do I avoid that this number is saved in scientific notation, but rather than all digits are maintained?
... View more