Enter all text files in zip in SAS

I am trying to read all text files inside a zip archive in SAS. This is what I got so far:

filename zipfile zip '/sas_p/gridshared/ch/eg_data/b036081/01_Import/YB_ECPAB/2016wt10vs0_1.zip';

DATA work.YB_ECPAB;
 LENGTH 
    F1 $ 1 KEART 8 KTYP_OR $ 1 KTYP_IAS $ 2 YB_BUKOR 8 KTR_TYP $ 1 KTR 8 RECHNART $ 1 ZIEL_VV $ 2 GEN_KZ $ 1 SCHLBASIS_KZ $ 2 BRCHE 8 BRCHU 8 BRCHE_IAS 8 PRODU 8 PROGR 8 PROKR 8 SPRTE 8 USPRT 8 GESELLSCHAFT 8 KONZERNSERVICE $ 1 KOROR 8 KSTBETR 8 KST 8 REQUESTID_BW $ 1 POLID $ 1 VORGANGSART $ 1 BEWERTUNGSSICHT $ 1 WERTTYP 8 VERSION 8 AENDERUNGSLAUFID $ 1 Satztyp $ 1 RequestID $ 30 JAHRPERIODE 8 PERIODE 8 JAHRVARIANTE $ 2 JAHR 8 WAEHRUNG $ 3 MENGE 8 BETR 8 Menge2 8;
 FORMAT 
    F1 $CHAR1. KEART BEST7. KTYP_OR $CHAR1. KTYP_IAS $CHAR2. YB_BUKOR BEST4. KTR_TYP $CHAR1. KTR BEST5. RECHNART $CHAR1. ZIEL_VV $CHAR2. GEN_KZ $CHAR1. SCHLBASIS_KZ $CHAR2. BRCHE BEST3. BRCHU BEST3. BRCHE_IAS BEST3. PRODU BEST3. PROGR BEST3. PROKR BEST3. SPRTE BEST3. USPRT BEST3. GESELLSCHAFT BEST6. KONZERNSERVICE $CHAR1. KOROR BEST4. KSTBETR BEST10. KST BEST10. REQUESTID_BW $CHAR1. POLID $CHAR1. VORGANGSART $CHAR1. BEWERTUNGSSICHT $CHAR1. WERTTYP BEST2. VERSION BEST2. AENDERUNGSLAUFID $CHAR1. Satztyp $CHAR1. RequestID $CHAR30. JAHRPERIODE BEST7. PERIODE BEST1. JAHRVARIANTE $CHAR2. JAHR BEST4. WAEHRUNG $CHAR3. MENGE BEST10. BETR COMMA32.2 Menge2 BEST10.;

INFILE zipfile(2016wt10vs0_1.txt)
    /*LRECL=188*/
     firstobs=4
     ENCODING="utf-16le"
     TERMSTR=CRLF
     DLM='09'x
     MISSOVER
     DSD;

 INPUT 
     F1 : $CHAR1. KEART : ?? BEST7. KTYP_OR : $CHAR1. KTYP_IAS : $CHAR2. YB_BUKOR : ?? BEST4. KTR_TYP : $CHAR1. KTR : ?? BEST5. RECHNART : $CHAR1. ZIEL_VV : $CHAR2. GEN_KZ : $CHAR1. SCHLBASIS_KZ : $CHAR2. BRCHE : ?? BEST3. BRCHU : ?? BEST3. BRCHE_IAS : ?? BEST3. PRODU : ?? BEST3. PROGR : ?? BEST3. PROKR : ?? BEST3. SPRTE : ?? BEST3. USPRT : ?? BEST3. GESELLSCHAFT : ?? BEST6. KONZERNSERVICE : $CHAR1. KOROR : ?? BEST4. KSTBETR : ?? BEST10. KST : ?? BEST10. REQUESTID_BW : $CHAR1. POLID : $CHAR1. VORGANGSART : $CHAR1. BEWERTUNGSSICHT : $CHAR1. WERTTYP : ?? BEST2. VERSION : ?? BEST2. AENDERUNGSLAUFID : $CHAR1. Satztyp : $CHAR1. RequestID : $CHAR30. JAHRPERIODE : ?? BEST7. PERIODE : ?? BEST1. JAHRVARIANTE : $CHAR2. JAHR : ?? BEST4. WAEHRUNG : $CHAR3. MENGE : BEST10. BETR : ?? COMMA32. Menge2 : BEST10.;
 DROP 
     F1 REQUESTID_BW POLID VORGANGSART BEWERTUNGSSICHT AENDERUNGSLAUFID Satztyp MENGE MENGE2;
RUN;

My code runs, but no records are read in my dataset (an empty dataset is displayed).

The magazine reads:

NOTE: The infile library ZIPFILE is:
      Directory=/sas_p/gridshared/ch/eg_data/b036081/01_Import/YB_ECPAB/2016wt10vs0_1.zip

NOTE: The infile ZIPFILE(2016wt10vs0_1.txt) is:
      Filename=/sas_p/gridshared/ch/eg_data/b036081/01_Import/YB_ECPAB/2016wt10vs0_1.zip,
      Member Name=2016wt10vs0_1.txt

NOTE: Truncation has occurred on the source line.
WARNING: A character that could not be transcoded has been replaced in record 0.
NOTE: A total of 0 records were read from the infile library ZIPFILE.
NOTE: 0 records were read from the infile ZIPFILE(2016wt10vs0_1.txt).
NOTE: The data set WORK.YB_ECPAB has 0 observations and 32 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.08 seconds

Any help regarding the following would be helpful:

  • Why do you need a fix?

  • Is it possible to read all files inside a zip archive right away (similar to using a wildcard for uncompressed files)?

+4
source share
1 answer
  • Why do you need a fix?

The solution was to convert my text files to utf-8using Notepad ++ and adjust my SAS code accordingly.

ENCODING="utf-16le" TERMSTR=CRLF, SAS ucs-2le SAP .

, SAS CRLF.

, :

, UCS-2 Endian 2x Java

https://winscp.net/eng/docs/faq_line_breaks

https://superuser.com/questions/294219/what-are-the-differences-between-linux-and-windows-txt-files-unicode-encoding

  1. zip- ( )?

+1

Source: https://habr.com/ru/post/1690601/


All Articles