<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Data step not working with ascii fixed format file in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Data-step-not-working-with-ascii-fixed-format-file/m-p/38498#M7728</link>
    <description>Hi all,&lt;BR /&gt;
&lt;BR /&gt;
It's been a while since I have been a regular SAS user.  I know that I've encountered this problem before, but can't remember the solution.  I would really appreciate your help.&lt;BR /&gt;
&lt;BR /&gt;
I have a fixed format ascii file, and many of the fields have missing values.&lt;BR /&gt;
But when I import the file, instead of setting the value of a field that is missing to missing, sas skips to the next non-missing character string and populating every missing field with that.&lt;BR /&gt;
&lt;BR /&gt;
I sure would appreciate any assistance!!&lt;BR /&gt;
&lt;BR /&gt;
Thanks, &lt;BR /&gt;
&lt;BR /&gt;
Barb&lt;BR /&gt;
&lt;BR /&gt;
**************************************************************************&lt;BR /&gt;
* Here is my data step:&lt;BR /&gt;
**************************************************************************&lt;BR /&gt;
libname client 'G:\CLIENTS\SAS_INPUT_DATA';&lt;BR /&gt;
&lt;BR /&gt;
data client.admissions (drop=DateAdmitChar DateDischargeChar);  &lt;BR /&gt;
  format DateAdmit DateDischarge mmddyy10.;&lt;BR /&gt;
  infile 'G:\CLIENTS\SAS_INPUT_DATA\admissions_with_drg.out'&lt;BR /&gt;
  LRECL=617&lt;BR /&gt;
  truncover;&lt;BR /&gt;
  input &lt;BR /&gt;
       @1   PATAGE :3.&lt;BR /&gt;
       @4   GENDER :$CHAR1.&lt;BR /&gt;
       @5   DateAdmitChar :$CHAR10.&lt;BR /&gt;
       @15  DateDischargeChar :$CHAR10.&lt;BR /&gt;
       @25  LOS :3.&lt;BR /&gt;
       @30  AdmitDx01 :$CHAR5.&lt;BR /&gt;
       @35  AdmitDx02 :$CHAR5.&lt;BR /&gt;
       @40  AdmitDx03 :$CHAR5.&lt;BR /&gt;
       @45  AdmitDx04 :$CHAR5.&lt;BR /&gt;
       @50  AdmitDx05 :$CHAR5.&lt;BR /&gt;
       @55  AdmitDx06 :$CHAR5.&lt;BR /&gt;
       @60  AdmitDx07 :$CHAR5.&lt;BR /&gt;
       @65  AdmitDx08 :$CHAR5.&lt;BR /&gt;
       @70  AdmitDx09 :$CHAR5.&lt;BR /&gt;
       @75  AdmitDx10 :$CHAR5.&lt;BR /&gt;
       @80  AdmitDx11 :$CHAR5.&lt;BR /&gt;
       @85  AdmitDx12 :$CHAR5.&lt;BR /&gt;
       @90  AdmitDx13 :$CHAR5.&lt;BR /&gt;
       @95  AdmitDx14 :$CHAR5.&lt;BR /&gt;
       @100 AdmitDx15 :$CHAR5.&lt;BR /&gt;
       @105 AdmitDx16 :$CHAR5.&lt;BR /&gt;
       @110 AdmitDx17 :$CHAR5.&lt;BR /&gt;
       @115 AdmitDx18 :$CHAR5.&lt;BR /&gt;
       @120 AdmitDx19 :$CHAR5.&lt;BR /&gt;
       @125 AdmitDx20 :$CHAR5.&lt;BR /&gt;
       @130 AdmitDx21 :$CHAR5.&lt;BR /&gt;
       @135 AdmitDx22 :$CHAR5.&lt;BR /&gt;
       @140 AdmitDx23 :$CHAR5.&lt;BR /&gt;
       @145 AdmitDx24 :$CHAR5.&lt;BR /&gt;
       @150 AdmitDx25 :$CHAR5.&lt;BR /&gt;
       @155 AdmitDx26 :$CHAR5.&lt;BR /&gt;
       @160 AdmitDx27 :$CHAR5.&lt;BR /&gt;
       @165 AdmitDx28 :$CHAR5.&lt;BR /&gt;
       @170 AdmitDx29 :$CHAR5.&lt;BR /&gt;
       @175 AdmitDx30 :$CHAR5.&lt;BR /&gt;
       @180 AdmitDx31 :$CHAR5.&lt;BR /&gt;
       @185 AdmitDx32 :$CHAR5.&lt;BR /&gt;
       @190 AdmitDx33 :$CHAR5.&lt;BR /&gt;
       @195 AdmitDx34 :$CHAR5.&lt;BR /&gt;
       @200 AdmitDx35 :$CHAR5.&lt;BR /&gt;
       @205 AdmitDx36 :$CHAR5.&lt;BR /&gt;
       @210 AdmitDx37 :$CHAR5.&lt;BR /&gt;
       @215 AdmitDx38 :$CHAR5.&lt;BR /&gt;
       @220 AdmitDx39 :$CHAR5.&lt;BR /&gt;
       @225 AdmitDx40 :$CHAR5.&lt;BR /&gt;
       @230 AdmitDx41 :$CHAR5.&lt;BR /&gt;
       @235 AdmitDx42 :$CHAR5.&lt;BR /&gt;
       @240 AdmitDx43 :$CHAR5.&lt;BR /&gt;
       @245 AdmitDx44 :$CHAR5.&lt;BR /&gt;
       @250 AdmitDx45 :$CHAR5.&lt;BR /&gt;
       @255 AdmitDx46 :$CHAR5.&lt;BR /&gt;
       @260 AdmitDx47 :$CHAR5.&lt;BR /&gt;
       @265 AdmitDx48 :$CHAR5.&lt;BR /&gt;
       @270 AdmitDx49 :$CHAR5.&lt;BR /&gt;
       @275 AdmitDx50 :$CHAR5.&lt;BR /&gt;
       @285 AdmitProc01 :$CHAR5.&lt;BR /&gt;
       @290 AdmitProc02 :$CHAR5.&lt;BR /&gt;
       @295 AdmitProc03 :$CHAR5.&lt;BR /&gt;
       @300 AdmitProc04 :$CHAR5.&lt;BR /&gt;
       @305 AdmitProc05 :$CHAR5.&lt;BR /&gt;
       @310 AdmitProc06 :$CHAR5.&lt;BR /&gt;
       @315 AdmitProc07 :$CHAR5.&lt;BR /&gt;
       @320 AdmitProc08 :$CHAR5.&lt;BR /&gt;
       @325 AdmitProc09 :$CHAR5.&lt;BR /&gt;
       @330 AdmitProc10 :$CHAR5.&lt;BR /&gt;
       @335 AdmitProc11 :$CHAR5.&lt;BR /&gt;
       @340 AdmitProc12 :$CHAR5.&lt;BR /&gt;
       @345 AdmitProc13 :$CHAR5.&lt;BR /&gt;
       @350 AdmitProc14 :$CHAR5.&lt;BR /&gt;
       @355 AdmitProc15 :$CHAR5.&lt;BR /&gt;
       @360 AdmitProc16 :$CHAR5.&lt;BR /&gt;
       @365 AdmitProc17 :$CHAR5.&lt;BR /&gt;
       @370 AdmitProc18 :$CHAR5.&lt;BR /&gt;
       @375 AdmitProc19 :$CHAR5.&lt;BR /&gt;
       @380 AdmitProc20 :$CHAR5.&lt;BR /&gt;
       @385 AdmitProc21 :$CHAR5.&lt;BR /&gt;
       @390 AdmitProc22 :$CHAR5.&lt;BR /&gt;
       @400 AdmitProc23 :$CHAR5.&lt;BR /&gt;
       @405 AdmitProc24 :$CHAR5.&lt;BR /&gt;
       @410 AdmitProc25 :$CHAR5.&lt;BR /&gt;
       @415 AdmitProc26 :$CHAR5.&lt;BR /&gt;
       @420 AdmitProc27 :$CHAR5.&lt;BR /&gt;
       @425 AdmitProc28 :$CHAR5.&lt;BR /&gt;
       @430 AdmitProc29 :$CHAR5.&lt;BR /&gt;
       @435 AdmitProc30 :$CHAR5.&lt;BR /&gt;
       @440 AdmitProc31 :$CHAR5.&lt;BR /&gt;
       @445 AdmitProc32 :$CHAR5.&lt;BR /&gt;
       @450 AdmitProc33 :$CHAR5.&lt;BR /&gt;
       @455 AdmitProc34 :$CHAR5.&lt;BR /&gt;
       @460 AdmitProc35 :$CHAR5.&lt;BR /&gt;
       @465 AdmitProc36 :$CHAR5.&lt;BR /&gt;
       @470 AdmitProc37 :$CHAR5.&lt;BR /&gt;
       @475 AdmitProc38 :$CHAR5.&lt;BR /&gt;
       @480 AdmitProc39 :$CHAR5.&lt;BR /&gt;
       @485 AdmitProc40 :$CHAR5.&lt;BR /&gt;
       @490 AdmitProc41 :$CHAR5.&lt;BR /&gt;
       @495 AdmitProc42 :$CHAR5.&lt;BR /&gt;
       @500 AdmitProc43 :$CHAR5.&lt;BR /&gt;
       @505 AdmitProc44 :$CHAR5.&lt;BR /&gt;
       @510 AdmitProc45 :$CHAR5.&lt;BR /&gt;
       @515 AdmitProc46 :$CHAR5.&lt;BR /&gt;
       @520 AdmitProc47 :$CHAR5.&lt;BR /&gt;
       @525 AdmitProc48 :$CHAR5.&lt;BR /&gt;
       @530 AdmitProc49 :$CHAR5.&lt;BR /&gt;
       @535 AdmitProc50 :$CHAR5.&lt;BR /&gt;
       @540 PATID :$CHAR20.&lt;BR /&gt;
       @565 HOSPITALID: $CHAR20.&lt;BR /&gt;
       @590 AdmitID: $CHAR15.&lt;BR /&gt;
       @608 DischStatus: $CHAR2.&lt;BR /&gt;
       @615 DRG: 3.&lt;BR /&gt;
	;&lt;BR /&gt;
	DateAdmit = mdy( substr(DateAdmitChar,6,2) , substr(DateAdmitChar,9,2) , substr(DateAdmitChar,1,4) );&lt;BR /&gt;
	DateDischarge = mdy( substr(DateDischargeChar,6,2) , substr(DateDischargeChar,9,2) , substr(DateDischargeChar,1,4) );&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
**************************************************************************&lt;BR /&gt;
* Here is the log (no errors, everything looks like it ran fine):&lt;BR /&gt;
**************************************************************************&lt;BR /&gt;
NOTE: Libref CLIENT was successfully assigned as follows:&lt;BR /&gt;
      Engine:        V9&lt;BR /&gt;
      Physical Name: G:\CLIENTS\SAS_INPUT_DATA&lt;BR /&gt;
987&lt;BR /&gt;
988  data client.admissions (drop=DateAdmitChar DateDischargeChar);&lt;BR /&gt;
989    format DateAdmit DateDischarge mmddyy10.;&lt;BR /&gt;
990    infile 'G:\CLIENTS\SAS_INPUT_DATA\admissions_with_drg.out'&lt;BR /&gt;
991    LRECL=617&lt;BR /&gt;
992    truncover;&lt;BR /&gt;
993    input&lt;BR /&gt;
994         @1   PATAGE :3.&lt;BR /&gt;
995         @4   GENDER :$CHAR1.&lt;BR /&gt;
996         @5   DateAdmitChar :$CHAR10.&lt;BR /&gt;
997         @15  DateDischargeChar :$CHAR10.&lt;BR /&gt;
998         @25  LOS :3.&lt;BR /&gt;
999         @30  AdmitDx01 :$CHAR5.&lt;BR /&gt;
1000         @35  AdmitDx02 :$CHAR5.&lt;BR /&gt;
1001         @40  AdmitDx03 :$CHAR5.&lt;BR /&gt;
1002         @45  AdmitDx04 :$CHAR5.&lt;BR /&gt;
1003         @50  AdmitDx05 :$CHAR5.&lt;BR /&gt;
1004         @55  AdmitDx06 :$CHAR5.&lt;BR /&gt;
1005         @60  AdmitDx07 :$CHAR5.&lt;BR /&gt;
1006         @65  AdmitDx08 :$CHAR5.&lt;BR /&gt;
1007         @70  AdmitDx09 :$CHAR5.&lt;BR /&gt;
1008         @75  AdmitDx10 :$CHAR5.&lt;BR /&gt;
1009         @80  AdmitDx11 :$CHAR5.&lt;BR /&gt;
1010         @85  AdmitDx12 :$CHAR5.&lt;BR /&gt;
1011         @90  AdmitDx13 :$CHAR5.&lt;BR /&gt;
1012         @95  AdmitDx14 :$CHAR5.&lt;BR /&gt;
1013         @100 AdmitDx15 :$CHAR5.&lt;BR /&gt;
1014         @105 AdmitDx16 :$CHAR5.&lt;BR /&gt;
1015         @110 AdmitDx17 :$CHAR5.&lt;BR /&gt;
1016         @115 AdmitDx18 :$CHAR5.&lt;BR /&gt;
1017         @120 AdmitDx19 :$CHAR5.&lt;BR /&gt;
1018         @125 AdmitDx20 :$CHAR5.&lt;BR /&gt;
1019         @130 AdmitDx21 :$CHAR5.&lt;BR /&gt;
1020         @135 AdmitDx22 :$CHAR5.&lt;BR /&gt;
1021         @140 AdmitDx23 :$CHAR5.&lt;BR /&gt;
1022         @145 AdmitDx24 :$CHAR5.&lt;BR /&gt;
1023         @150 AdmitDx25 :$CHAR5.&lt;BR /&gt;
1024         @155 AdmitDx26 :$CHAR5.&lt;BR /&gt;
1025         @160 AdmitDx27 :$CHAR5.&lt;BR /&gt;
1026         @165 AdmitDx28 :$CHAR5.&lt;BR /&gt;
1027         @170 AdmitDx29 :$CHAR5.&lt;BR /&gt;
1028         @175 AdmitDx30 :$CHAR5.&lt;BR /&gt;
1029         @180 AdmitDx31 :$CHAR5.&lt;BR /&gt;
1030         @185 AdmitDx32 :$CHAR5.&lt;BR /&gt;
1031         @190 AdmitDx33 :$CHAR5.&lt;BR /&gt;
1032         @195 AdmitDx34 :$CHAR5.&lt;BR /&gt;
1033         @200 AdmitDx35 :$CHAR5.&lt;BR /&gt;
1034         @205 AdmitDx36 :$CHAR5.&lt;BR /&gt;
1035         @210 AdmitDx37 :$CHAR5.&lt;BR /&gt;
1036         @215 AdmitDx38 :$CHAR5.&lt;BR /&gt;
1037         @220 AdmitDx39 :$CHAR5.&lt;BR /&gt;
1038         @225 AdmitDx40 :$CHAR5.&lt;BR /&gt;
1039         @230 AdmitDx41 :$CHAR5.&lt;BR /&gt;
1040         @235 AdmitDx42 :$CHAR5.&lt;BR /&gt;
1041         @240 AdmitDx43 :$CHAR5.&lt;BR /&gt;
1042         @245 AdmitDx44 :$CHAR5.&lt;BR /&gt;
1043         @250 AdmitDx45 :$CHAR5.&lt;BR /&gt;
1044         @255 AdmitDx46 :$CHAR5.&lt;BR /&gt;
1045         @260 AdmitDx47 :$CHAR5.&lt;BR /&gt;
1046         @265 AdmitDx48 :$CHAR5.&lt;BR /&gt;
1047         @270 AdmitDx49 :$CHAR5.&lt;BR /&gt;
1048         @275 AdmitDx50 :$CHAR5.&lt;BR /&gt;
1049         @285 AdmitProc01 :$CHAR5.&lt;BR /&gt;
1050         @290 AdmitProc02 :$CHAR5.&lt;BR /&gt;
1051         @295 AdmitProc03 :$CHAR5.&lt;BR /&gt;
1052         @300 AdmitProc04 :$CHAR5.&lt;BR /&gt;
1053         @305 AdmitProc05 :$CHAR5.&lt;BR /&gt;
1054         @310 AdmitProc06 :$CHAR5.&lt;BR /&gt;
1055         @315 AdmitProc07 :$CHAR5.&lt;BR /&gt;
1056         @320 AdmitProc08 :$CHAR5.&lt;BR /&gt;
1057         @325 AdmitProc09 :$CHAR5.&lt;BR /&gt;
1058         @330 AdmitProc10 :$CHAR5.&lt;BR /&gt;
1059         @335 AdmitProc11 :$CHAR5.&lt;BR /&gt;
1060         @340 AdmitProc12 :$CHAR5.&lt;BR /&gt;
1061         @345 AdmitProc13 :$CHAR5.&lt;BR /&gt;
1062         @350 AdmitProc14 :$CHAR5.&lt;BR /&gt;
1063         @355 AdmitProc15 :$CHAR5.&lt;BR /&gt;
1064         @360 AdmitProc16 :$CHAR5.&lt;BR /&gt;
1065         @365 AdmitProc17 :$CHAR5.&lt;BR /&gt;
1066         @370 AdmitProc18 :$CHAR5.&lt;BR /&gt;
1067         @375 AdmitProc19 :$CHAR5.&lt;BR /&gt;
1068         @380 AdmitProc20 :$CHAR5.&lt;BR /&gt;
1069         @385 AdmitProc21 :$CHAR5.&lt;BR /&gt;
1070         @390 AdmitProc22 :$CHAR5.&lt;BR /&gt;
1071         @400 AdmitProc23 :$CHAR5.&lt;BR /&gt;
1072         @405 AdmitProc24 :$CHAR5.&lt;BR /&gt;
1073         @410 AdmitProc25 :$CHAR5.&lt;BR /&gt;
1074         @415 AdmitProc26 :$CHAR5.&lt;BR /&gt;
1075         @420 AdmitProc27 :$CHAR5.&lt;BR /&gt;
1076         @425 AdmitProc28 :$CHAR5.&lt;BR /&gt;
1077         @430 AdmitProc29 :$CHAR5.&lt;BR /&gt;
1078         @435 AdmitProc30 :$CHAR5.&lt;BR /&gt;
1079         @440 AdmitProc31 :$CHAR5.&lt;BR /&gt;
1080         @445 AdmitProc32 :$CHAR5.&lt;BR /&gt;
1081         @450 AdmitProc33 :$CHAR5.&lt;BR /&gt;
1082         @455 AdmitProc34 :$CHAR5.&lt;BR /&gt;
1083         @460 AdmitProc35 :$CHAR5.&lt;BR /&gt;
1084         @465 AdmitProc36 :$CHAR5.&lt;BR /&gt;
1085         @470 AdmitProc37 :$CHAR5.&lt;BR /&gt;
1086         @475 AdmitProc38 :$CHAR5.&lt;BR /&gt;
1087         @480 AdmitProc39 :$CHAR5.&lt;BR /&gt;
1088         @485 AdmitProc40 :$CHAR5.&lt;BR /&gt;
1089         @490 AdmitProc41 :$CHAR5.&lt;BR /&gt;
1090         @495 AdmitProc42 :$CHAR5.&lt;BR /&gt;
1091         @500 AdmitProc43 :$CHAR5.&lt;BR /&gt;
1092         @505 AdmitProc44 :$CHAR5.&lt;BR /&gt;
1093         @510 AdmitProc45 :$CHAR5.&lt;BR /&gt;
1094         @515 AdmitProc46 :$CHAR5.&lt;BR /&gt;
1095         @520 AdmitProc47 :$CHAR5.&lt;BR /&gt;
1096         @525 AdmitProc48 :$CHAR5.&lt;BR /&gt;
1097         @530 AdmitProc49 :$CHAR5.&lt;BR /&gt;
1098         @535 AdmitProc50 :$CHAR5.&lt;BR /&gt;
1099         @540 PATID :$CHAR20.&lt;BR /&gt;
1100         @565 HOSPITALID: $CHAR20.&lt;BR /&gt;
1101         @590 AdmitID: $CHAR15.&lt;BR /&gt;
1102         @608 DischStatus: $CHAR2.&lt;BR /&gt;
1103         @615 DRG: 3.&lt;BR /&gt;
1104      ;&lt;BR /&gt;
1105      DateAdmit = mdy( substr(DateAdmitChar,6,2) , substr(DateAdmitChar,9,2) ,&lt;BR /&gt;
1105! substr(DateAdmitChar,1,4) );&lt;BR /&gt;
1106      DateDischarge = mdy( substr(DateDischargeChar,6,2) ,&lt;BR /&gt;
1106! substr(DateDischargeChar,9,2) , substr(DateDischargeChar,1,4) );&lt;BR /&gt;
1107  run;&lt;BR /&gt;
&lt;BR /&gt;
NOTE: Character values have been converted to numeric values at the places given by:&lt;BR /&gt;
      (Line):(Column).&lt;BR /&gt;
      1105:22   1105:50   1105:78   1106:26   1106:58   1106:90&lt;BR /&gt;
NOTE: The infile 'G:\CLIENTS\SAS_INPUT_DATA\admissions_with_drg.out' is:&lt;BR /&gt;
      File Name=G:\CLIENTS\SAS_INPUT_DATA\admissions_with_drg.out,&lt;BR /&gt;
      RECFM=V,LRECL=617&lt;BR /&gt;
&lt;BR /&gt;
NOTE: 872 records were read from the infile&lt;BR /&gt;
      'G:\CLIENTS\SAS_INPUT_DATA\admissions_with_drg.out'.&lt;BR /&gt;
      The minimum record length was 617.&lt;BR /&gt;
      The maximum record length was 617.&lt;BR /&gt;
      One or more lines were truncated.&lt;BR /&gt;
NOTE: The data set CLIENT.ADMISSIONS has 872 observations and 110 variables.&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.09 seconds&lt;BR /&gt;
      cpu time            0.04 seconds</description>
    <pubDate>Fri, 29 May 2009 07:31:40 GMT</pubDate>
    <dc:creator>deleted_user</dc:creator>
    <dc:date>2009-05-29T07:31:40Z</dc:date>
    <item>
      <title>Data step not working with ascii fixed format file</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-step-not-working-with-ascii-fixed-format-file/m-p/38498#M7728</link>
      <description>Hi all,&lt;BR /&gt;
&lt;BR /&gt;
It's been a while since I have been a regular SAS user.  I know that I've encountered this problem before, but can't remember the solution.  I would really appreciate your help.&lt;BR /&gt;
&lt;BR /&gt;
I have a fixed format ascii file, and many of the fields have missing values.&lt;BR /&gt;
But when I import the file, instead of setting the value of a field that is missing to missing, sas skips to the next non-missing character string and populating every missing field with that.&lt;BR /&gt;
&lt;BR /&gt;
I sure would appreciate any assistance!!&lt;BR /&gt;
&lt;BR /&gt;
Thanks, &lt;BR /&gt;
&lt;BR /&gt;
Barb&lt;BR /&gt;
&lt;BR /&gt;
**************************************************************************&lt;BR /&gt;
* Here is my data step:&lt;BR /&gt;
**************************************************************************&lt;BR /&gt;
libname client 'G:\CLIENTS\SAS_INPUT_DATA';&lt;BR /&gt;
&lt;BR /&gt;
data client.admissions (drop=DateAdmitChar DateDischargeChar);  &lt;BR /&gt;
  format DateAdmit DateDischarge mmddyy10.;&lt;BR /&gt;
  infile 'G:\CLIENTS\SAS_INPUT_DATA\admissions_with_drg.out'&lt;BR /&gt;
  LRECL=617&lt;BR /&gt;
  truncover;&lt;BR /&gt;
  input &lt;BR /&gt;
       @1   PATAGE :3.&lt;BR /&gt;
       @4   GENDER :$CHAR1.&lt;BR /&gt;
       @5   DateAdmitChar :$CHAR10.&lt;BR /&gt;
       @15  DateDischargeChar :$CHAR10.&lt;BR /&gt;
       @25  LOS :3.&lt;BR /&gt;
       @30  AdmitDx01 :$CHAR5.&lt;BR /&gt;
       @35  AdmitDx02 :$CHAR5.&lt;BR /&gt;
       @40  AdmitDx03 :$CHAR5.&lt;BR /&gt;
       @45  AdmitDx04 :$CHAR5.&lt;BR /&gt;
       @50  AdmitDx05 :$CHAR5.&lt;BR /&gt;
       @55  AdmitDx06 :$CHAR5.&lt;BR /&gt;
       @60  AdmitDx07 :$CHAR5.&lt;BR /&gt;
       @65  AdmitDx08 :$CHAR5.&lt;BR /&gt;
       @70  AdmitDx09 :$CHAR5.&lt;BR /&gt;
       @75  AdmitDx10 :$CHAR5.&lt;BR /&gt;
       @80  AdmitDx11 :$CHAR5.&lt;BR /&gt;
       @85  AdmitDx12 :$CHAR5.&lt;BR /&gt;
       @90  AdmitDx13 :$CHAR5.&lt;BR /&gt;
       @95  AdmitDx14 :$CHAR5.&lt;BR /&gt;
       @100 AdmitDx15 :$CHAR5.&lt;BR /&gt;
       @105 AdmitDx16 :$CHAR5.&lt;BR /&gt;
       @110 AdmitDx17 :$CHAR5.&lt;BR /&gt;
       @115 AdmitDx18 :$CHAR5.&lt;BR /&gt;
       @120 AdmitDx19 :$CHAR5.&lt;BR /&gt;
       @125 AdmitDx20 :$CHAR5.&lt;BR /&gt;
       @130 AdmitDx21 :$CHAR5.&lt;BR /&gt;
       @135 AdmitDx22 :$CHAR5.&lt;BR /&gt;
       @140 AdmitDx23 :$CHAR5.&lt;BR /&gt;
       @145 AdmitDx24 :$CHAR5.&lt;BR /&gt;
       @150 AdmitDx25 :$CHAR5.&lt;BR /&gt;
       @155 AdmitDx26 :$CHAR5.&lt;BR /&gt;
       @160 AdmitDx27 :$CHAR5.&lt;BR /&gt;
       @165 AdmitDx28 :$CHAR5.&lt;BR /&gt;
       @170 AdmitDx29 :$CHAR5.&lt;BR /&gt;
       @175 AdmitDx30 :$CHAR5.&lt;BR /&gt;
       @180 AdmitDx31 :$CHAR5.&lt;BR /&gt;
       @185 AdmitDx32 :$CHAR5.&lt;BR /&gt;
       @190 AdmitDx33 :$CHAR5.&lt;BR /&gt;
       @195 AdmitDx34 :$CHAR5.&lt;BR /&gt;
       @200 AdmitDx35 :$CHAR5.&lt;BR /&gt;
       @205 AdmitDx36 :$CHAR5.&lt;BR /&gt;
       @210 AdmitDx37 :$CHAR5.&lt;BR /&gt;
       @215 AdmitDx38 :$CHAR5.&lt;BR /&gt;
       @220 AdmitDx39 :$CHAR5.&lt;BR /&gt;
       @225 AdmitDx40 :$CHAR5.&lt;BR /&gt;
       @230 AdmitDx41 :$CHAR5.&lt;BR /&gt;
       @235 AdmitDx42 :$CHAR5.&lt;BR /&gt;
       @240 AdmitDx43 :$CHAR5.&lt;BR /&gt;
       @245 AdmitDx44 :$CHAR5.&lt;BR /&gt;
       @250 AdmitDx45 :$CHAR5.&lt;BR /&gt;
       @255 AdmitDx46 :$CHAR5.&lt;BR /&gt;
       @260 AdmitDx47 :$CHAR5.&lt;BR /&gt;
       @265 AdmitDx48 :$CHAR5.&lt;BR /&gt;
       @270 AdmitDx49 :$CHAR5.&lt;BR /&gt;
       @275 AdmitDx50 :$CHAR5.&lt;BR /&gt;
       @285 AdmitProc01 :$CHAR5.&lt;BR /&gt;
       @290 AdmitProc02 :$CHAR5.&lt;BR /&gt;
       @295 AdmitProc03 :$CHAR5.&lt;BR /&gt;
       @300 AdmitProc04 :$CHAR5.&lt;BR /&gt;
       @305 AdmitProc05 :$CHAR5.&lt;BR /&gt;
       @310 AdmitProc06 :$CHAR5.&lt;BR /&gt;
       @315 AdmitProc07 :$CHAR5.&lt;BR /&gt;
       @320 AdmitProc08 :$CHAR5.&lt;BR /&gt;
       @325 AdmitProc09 :$CHAR5.&lt;BR /&gt;
       @330 AdmitProc10 :$CHAR5.&lt;BR /&gt;
       @335 AdmitProc11 :$CHAR5.&lt;BR /&gt;
       @340 AdmitProc12 :$CHAR5.&lt;BR /&gt;
       @345 AdmitProc13 :$CHAR5.&lt;BR /&gt;
       @350 AdmitProc14 :$CHAR5.&lt;BR /&gt;
       @355 AdmitProc15 :$CHAR5.&lt;BR /&gt;
       @360 AdmitProc16 :$CHAR5.&lt;BR /&gt;
       @365 AdmitProc17 :$CHAR5.&lt;BR /&gt;
       @370 AdmitProc18 :$CHAR5.&lt;BR /&gt;
       @375 AdmitProc19 :$CHAR5.&lt;BR /&gt;
       @380 AdmitProc20 :$CHAR5.&lt;BR /&gt;
       @385 AdmitProc21 :$CHAR5.&lt;BR /&gt;
       @390 AdmitProc22 :$CHAR5.&lt;BR /&gt;
       @400 AdmitProc23 :$CHAR5.&lt;BR /&gt;
       @405 AdmitProc24 :$CHAR5.&lt;BR /&gt;
       @410 AdmitProc25 :$CHAR5.&lt;BR /&gt;
       @415 AdmitProc26 :$CHAR5.&lt;BR /&gt;
       @420 AdmitProc27 :$CHAR5.&lt;BR /&gt;
       @425 AdmitProc28 :$CHAR5.&lt;BR /&gt;
       @430 AdmitProc29 :$CHAR5.&lt;BR /&gt;
       @435 AdmitProc30 :$CHAR5.&lt;BR /&gt;
       @440 AdmitProc31 :$CHAR5.&lt;BR /&gt;
       @445 AdmitProc32 :$CHAR5.&lt;BR /&gt;
       @450 AdmitProc33 :$CHAR5.&lt;BR /&gt;
       @455 AdmitProc34 :$CHAR5.&lt;BR /&gt;
       @460 AdmitProc35 :$CHAR5.&lt;BR /&gt;
       @465 AdmitProc36 :$CHAR5.&lt;BR /&gt;
       @470 AdmitProc37 :$CHAR5.&lt;BR /&gt;
       @475 AdmitProc38 :$CHAR5.&lt;BR /&gt;
       @480 AdmitProc39 :$CHAR5.&lt;BR /&gt;
       @485 AdmitProc40 :$CHAR5.&lt;BR /&gt;
       @490 AdmitProc41 :$CHAR5.&lt;BR /&gt;
       @495 AdmitProc42 :$CHAR5.&lt;BR /&gt;
       @500 AdmitProc43 :$CHAR5.&lt;BR /&gt;
       @505 AdmitProc44 :$CHAR5.&lt;BR /&gt;
       @510 AdmitProc45 :$CHAR5.&lt;BR /&gt;
       @515 AdmitProc46 :$CHAR5.&lt;BR /&gt;
       @520 AdmitProc47 :$CHAR5.&lt;BR /&gt;
       @525 AdmitProc48 :$CHAR5.&lt;BR /&gt;
       @530 AdmitProc49 :$CHAR5.&lt;BR /&gt;
       @535 AdmitProc50 :$CHAR5.&lt;BR /&gt;
       @540 PATID :$CHAR20.&lt;BR /&gt;
       @565 HOSPITALID: $CHAR20.&lt;BR /&gt;
       @590 AdmitID: $CHAR15.&lt;BR /&gt;
       @608 DischStatus: $CHAR2.&lt;BR /&gt;
       @615 DRG: 3.&lt;BR /&gt;
	;&lt;BR /&gt;
	DateAdmit = mdy( substr(DateAdmitChar,6,2) , substr(DateAdmitChar,9,2) , substr(DateAdmitChar,1,4) );&lt;BR /&gt;
	DateDischarge = mdy( substr(DateDischargeChar,6,2) , substr(DateDischargeChar,9,2) , substr(DateDischargeChar,1,4) );&lt;BR /&gt;
run;&lt;BR /&gt;
&lt;BR /&gt;
**************************************************************************&lt;BR /&gt;
* Here is the log (no errors, everything looks like it ran fine):&lt;BR /&gt;
**************************************************************************&lt;BR /&gt;
NOTE: Libref CLIENT was successfully assigned as follows:&lt;BR /&gt;
      Engine:        V9&lt;BR /&gt;
      Physical Name: G:\CLIENTS\SAS_INPUT_DATA&lt;BR /&gt;
987&lt;BR /&gt;
988  data client.admissions (drop=DateAdmitChar DateDischargeChar);&lt;BR /&gt;
989    format DateAdmit DateDischarge mmddyy10.;&lt;BR /&gt;
990    infile 'G:\CLIENTS\SAS_INPUT_DATA\admissions_with_drg.out'&lt;BR /&gt;
991    LRECL=617&lt;BR /&gt;
992    truncover;&lt;BR /&gt;
993    input&lt;BR /&gt;
994         @1   PATAGE :3.&lt;BR /&gt;
995         @4   GENDER :$CHAR1.&lt;BR /&gt;
996         @5   DateAdmitChar :$CHAR10.&lt;BR /&gt;
997         @15  DateDischargeChar :$CHAR10.&lt;BR /&gt;
998         @25  LOS :3.&lt;BR /&gt;
999         @30  AdmitDx01 :$CHAR5.&lt;BR /&gt;
1000         @35  AdmitDx02 :$CHAR5.&lt;BR /&gt;
1001         @40  AdmitDx03 :$CHAR5.&lt;BR /&gt;
1002         @45  AdmitDx04 :$CHAR5.&lt;BR /&gt;
1003         @50  AdmitDx05 :$CHAR5.&lt;BR /&gt;
1004         @55  AdmitDx06 :$CHAR5.&lt;BR /&gt;
1005         @60  AdmitDx07 :$CHAR5.&lt;BR /&gt;
1006         @65  AdmitDx08 :$CHAR5.&lt;BR /&gt;
1007         @70  AdmitDx09 :$CHAR5.&lt;BR /&gt;
1008         @75  AdmitDx10 :$CHAR5.&lt;BR /&gt;
1009         @80  AdmitDx11 :$CHAR5.&lt;BR /&gt;
1010         @85  AdmitDx12 :$CHAR5.&lt;BR /&gt;
1011         @90  AdmitDx13 :$CHAR5.&lt;BR /&gt;
1012         @95  AdmitDx14 :$CHAR5.&lt;BR /&gt;
1013         @100 AdmitDx15 :$CHAR5.&lt;BR /&gt;
1014         @105 AdmitDx16 :$CHAR5.&lt;BR /&gt;
1015         @110 AdmitDx17 :$CHAR5.&lt;BR /&gt;
1016         @115 AdmitDx18 :$CHAR5.&lt;BR /&gt;
1017         @120 AdmitDx19 :$CHAR5.&lt;BR /&gt;
1018         @125 AdmitDx20 :$CHAR5.&lt;BR /&gt;
1019         @130 AdmitDx21 :$CHAR5.&lt;BR /&gt;
1020         @135 AdmitDx22 :$CHAR5.&lt;BR /&gt;
1021         @140 AdmitDx23 :$CHAR5.&lt;BR /&gt;
1022         @145 AdmitDx24 :$CHAR5.&lt;BR /&gt;
1023         @150 AdmitDx25 :$CHAR5.&lt;BR /&gt;
1024         @155 AdmitDx26 :$CHAR5.&lt;BR /&gt;
1025         @160 AdmitDx27 :$CHAR5.&lt;BR /&gt;
1026         @165 AdmitDx28 :$CHAR5.&lt;BR /&gt;
1027         @170 AdmitDx29 :$CHAR5.&lt;BR /&gt;
1028         @175 AdmitDx30 :$CHAR5.&lt;BR /&gt;
1029         @180 AdmitDx31 :$CHAR5.&lt;BR /&gt;
1030         @185 AdmitDx32 :$CHAR5.&lt;BR /&gt;
1031         @190 AdmitDx33 :$CHAR5.&lt;BR /&gt;
1032         @195 AdmitDx34 :$CHAR5.&lt;BR /&gt;
1033         @200 AdmitDx35 :$CHAR5.&lt;BR /&gt;
1034         @205 AdmitDx36 :$CHAR5.&lt;BR /&gt;
1035         @210 AdmitDx37 :$CHAR5.&lt;BR /&gt;
1036         @215 AdmitDx38 :$CHAR5.&lt;BR /&gt;
1037         @220 AdmitDx39 :$CHAR5.&lt;BR /&gt;
1038         @225 AdmitDx40 :$CHAR5.&lt;BR /&gt;
1039         @230 AdmitDx41 :$CHAR5.&lt;BR /&gt;
1040         @235 AdmitDx42 :$CHAR5.&lt;BR /&gt;
1041         @240 AdmitDx43 :$CHAR5.&lt;BR /&gt;
1042         @245 AdmitDx44 :$CHAR5.&lt;BR /&gt;
1043         @250 AdmitDx45 :$CHAR5.&lt;BR /&gt;
1044         @255 AdmitDx46 :$CHAR5.&lt;BR /&gt;
1045         @260 AdmitDx47 :$CHAR5.&lt;BR /&gt;
1046         @265 AdmitDx48 :$CHAR5.&lt;BR /&gt;
1047         @270 AdmitDx49 :$CHAR5.&lt;BR /&gt;
1048         @275 AdmitDx50 :$CHAR5.&lt;BR /&gt;
1049         @285 AdmitProc01 :$CHAR5.&lt;BR /&gt;
1050         @290 AdmitProc02 :$CHAR5.&lt;BR /&gt;
1051         @295 AdmitProc03 :$CHAR5.&lt;BR /&gt;
1052         @300 AdmitProc04 :$CHAR5.&lt;BR /&gt;
1053         @305 AdmitProc05 :$CHAR5.&lt;BR /&gt;
1054         @310 AdmitProc06 :$CHAR5.&lt;BR /&gt;
1055         @315 AdmitProc07 :$CHAR5.&lt;BR /&gt;
1056         @320 AdmitProc08 :$CHAR5.&lt;BR /&gt;
1057         @325 AdmitProc09 :$CHAR5.&lt;BR /&gt;
1058         @330 AdmitProc10 :$CHAR5.&lt;BR /&gt;
1059         @335 AdmitProc11 :$CHAR5.&lt;BR /&gt;
1060         @340 AdmitProc12 :$CHAR5.&lt;BR /&gt;
1061         @345 AdmitProc13 :$CHAR5.&lt;BR /&gt;
1062         @350 AdmitProc14 :$CHAR5.&lt;BR /&gt;
1063         @355 AdmitProc15 :$CHAR5.&lt;BR /&gt;
1064         @360 AdmitProc16 :$CHAR5.&lt;BR /&gt;
1065         @365 AdmitProc17 :$CHAR5.&lt;BR /&gt;
1066         @370 AdmitProc18 :$CHAR5.&lt;BR /&gt;
1067         @375 AdmitProc19 :$CHAR5.&lt;BR /&gt;
1068         @380 AdmitProc20 :$CHAR5.&lt;BR /&gt;
1069         @385 AdmitProc21 :$CHAR5.&lt;BR /&gt;
1070         @390 AdmitProc22 :$CHAR5.&lt;BR /&gt;
1071         @400 AdmitProc23 :$CHAR5.&lt;BR /&gt;
1072         @405 AdmitProc24 :$CHAR5.&lt;BR /&gt;
1073         @410 AdmitProc25 :$CHAR5.&lt;BR /&gt;
1074         @415 AdmitProc26 :$CHAR5.&lt;BR /&gt;
1075         @420 AdmitProc27 :$CHAR5.&lt;BR /&gt;
1076         @425 AdmitProc28 :$CHAR5.&lt;BR /&gt;
1077         @430 AdmitProc29 :$CHAR5.&lt;BR /&gt;
1078         @435 AdmitProc30 :$CHAR5.&lt;BR /&gt;
1079         @440 AdmitProc31 :$CHAR5.&lt;BR /&gt;
1080         @445 AdmitProc32 :$CHAR5.&lt;BR /&gt;
1081         @450 AdmitProc33 :$CHAR5.&lt;BR /&gt;
1082         @455 AdmitProc34 :$CHAR5.&lt;BR /&gt;
1083         @460 AdmitProc35 :$CHAR5.&lt;BR /&gt;
1084         @465 AdmitProc36 :$CHAR5.&lt;BR /&gt;
1085         @470 AdmitProc37 :$CHAR5.&lt;BR /&gt;
1086         @475 AdmitProc38 :$CHAR5.&lt;BR /&gt;
1087         @480 AdmitProc39 :$CHAR5.&lt;BR /&gt;
1088         @485 AdmitProc40 :$CHAR5.&lt;BR /&gt;
1089         @490 AdmitProc41 :$CHAR5.&lt;BR /&gt;
1090         @495 AdmitProc42 :$CHAR5.&lt;BR /&gt;
1091         @500 AdmitProc43 :$CHAR5.&lt;BR /&gt;
1092         @505 AdmitProc44 :$CHAR5.&lt;BR /&gt;
1093         @510 AdmitProc45 :$CHAR5.&lt;BR /&gt;
1094         @515 AdmitProc46 :$CHAR5.&lt;BR /&gt;
1095         @520 AdmitProc47 :$CHAR5.&lt;BR /&gt;
1096         @525 AdmitProc48 :$CHAR5.&lt;BR /&gt;
1097         @530 AdmitProc49 :$CHAR5.&lt;BR /&gt;
1098         @535 AdmitProc50 :$CHAR5.&lt;BR /&gt;
1099         @540 PATID :$CHAR20.&lt;BR /&gt;
1100         @565 HOSPITALID: $CHAR20.&lt;BR /&gt;
1101         @590 AdmitID: $CHAR15.&lt;BR /&gt;
1102         @608 DischStatus: $CHAR2.&lt;BR /&gt;
1103         @615 DRG: 3.&lt;BR /&gt;
1104      ;&lt;BR /&gt;
1105      DateAdmit = mdy( substr(DateAdmitChar,6,2) , substr(DateAdmitChar,9,2) ,&lt;BR /&gt;
1105! substr(DateAdmitChar,1,4) );&lt;BR /&gt;
1106      DateDischarge = mdy( substr(DateDischargeChar,6,2) ,&lt;BR /&gt;
1106! substr(DateDischargeChar,9,2) , substr(DateDischargeChar,1,4) );&lt;BR /&gt;
1107  run;&lt;BR /&gt;
&lt;BR /&gt;
NOTE: Character values have been converted to numeric values at the places given by:&lt;BR /&gt;
      (Line):(Column).&lt;BR /&gt;
      1105:22   1105:50   1105:78   1106:26   1106:58   1106:90&lt;BR /&gt;
NOTE: The infile 'G:\CLIENTS\SAS_INPUT_DATA\admissions_with_drg.out' is:&lt;BR /&gt;
      File Name=G:\CLIENTS\SAS_INPUT_DATA\admissions_with_drg.out,&lt;BR /&gt;
      RECFM=V,LRECL=617&lt;BR /&gt;
&lt;BR /&gt;
NOTE: 872 records were read from the infile&lt;BR /&gt;
      'G:\CLIENTS\SAS_INPUT_DATA\admissions_with_drg.out'.&lt;BR /&gt;
      The minimum record length was 617.&lt;BR /&gt;
      The maximum record length was 617.&lt;BR /&gt;
      One or more lines were truncated.&lt;BR /&gt;
NOTE: The data set CLIENT.ADMISSIONS has 872 observations and 110 variables.&lt;BR /&gt;
NOTE: DATA statement used (Total process time):&lt;BR /&gt;
      real time           0.09 seconds&lt;BR /&gt;
      cpu time            0.04 seconds</description>
      <pubDate>Fri, 29 May 2009 07:31:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-step-not-working-with-ascii-fixed-format-file/m-p/38498#M7728</guid>
      <dc:creator>deleted_user</dc:creator>
      <dc:date>2009-05-29T07:31:40Z</dc:date>
    </item>
    <item>
      <title>Re: Data step not working with ascii fixed format file</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-step-not-working-with-ascii-fixed-format-file/m-p/38499#M7729</link>
      <description>those : (colon) characters tell the input handling to move on to the next non-blank character. So, if you actually want to read at the target column, remove those : characters .&lt;BR /&gt;
If blank/missing data is acceptable and generating errors, use the ?? informat modifier to suppress emssages.&lt;BR /&gt;
 &lt;BR /&gt;
good luck&lt;BR /&gt;
 &lt;BR /&gt;
PeterC</description>
      <pubDate>Fri, 29 May 2009 11:07:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-step-not-working-with-ascii-fixed-format-file/m-p/38499#M7729</guid>
      <dc:creator>Peter_C</dc:creator>
      <dc:date>2009-05-29T11:07:02Z</dc:date>
    </item>
    <item>
      <title>Re: Data step not working with ascii fixed format file</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-step-not-working-with-ascii-fixed-format-file/m-p/38500#M7730</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;in stead of truncover try using missover&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Oct 2014 08:40:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-step-not-working-with-ascii-fixed-format-file/m-p/38500#M7730</guid>
      <dc:creator>BartDekeyser</dc:creator>
      <dc:date>2014-10-10T08:40:25Z</dc:date>
    </item>
  </channel>
</rss>

