1 ! PROGRAM CSPCVT, VERSION 1A (31-AUG-73) ! 2 ! PROGRAM CSPCVT IS A UTILITY PROGRAM FOR THE COSAP PACKAGE. IT ! CONVERTS A USER FILE INTO A COSAP DATABANK (IF AND ONLY IF ! THAT USER FILE HAS BEEN CREATED ACCORDING TO CERTAIN RULES.) 3 ! PROGRAM CSPCVT IS A SUPPLEMENTAL PROGRAM FOR THE COSAP PACKAGE; ! IT IS DISCUSSED (ALONG WITH A SAMPLE USER FILE-CREATION PROGRAM, ! CSPDEM) IN SECTION 3 OF THE USER'S GUIDE TO COSAP. 4 ! COSAP ITSELF IS LAWRENCE UNIVERSITY'S CONVERSATIONALLY ORIENTED ! STATISTICAL ANALYSIS PACKAGE. COSAP AND ITS SUPPLEMENTAL PROGRAMS ! ARE DISTRIBUTED FOR EDUCATIONAL USE, ON THE CONDITION THAT THEY 5 ! NOT BE SOLD, RENTED OR LEASED FOR PROFIT. ! ! IF YOU DESIRE FURTHER INFORMATION ABOUT COSAP, PLEASE CONTACT THE 6 ! LAWRENCE UNIVERSITY COMPUTER CENTER, APPLETON, WISCONSIN, 54911 ! 20! THE USER FILE MUST BE A VIRTUAL CORE FILE DIMENSIONED EXACTLY 21! AS FOLLOWS: 22! DIM #D% N$(50%)=8%,N%(50%),X(200%,50%) 23! WHERE: D IS THE DESIRED VIRTUAL CORE FILE NUMBER (D=1,2,...,12) 24! N$ IS THE VECTOR OF VARIABLE NAMES (MAXIMUM OF 50) (NO VARIABLE NAME MAY BE LONGER THAN 8 CHARACTERS.) 25! N%(0%) IS THE NUMBER OF VARIABLES IN THE FILE (MAXIMUM OF 50) 26! N%(I%) IS THE NUMBER OF OBSERVATIONS (VALUES) OF VARIABLE I, FOR I%=1,2,...,N%(0%). 27! (NOTE THAT, FOR V.1A OF COSAP, THE IDENTITY N%(1%)=N%(2%)=...=N%(N%(0%)) MUST HOLD.) 28! X IS THE MATRIX OF DATA, ARANGED BY ROW: X(R,C), WHERE R=1,2,...,N%(I%) AND C=1,2,...,N%(0%) 29! REMEMBER THAT THE MAXIMUM NUMBER OF VALUES PER VARIABLE IS 200 30! (THAT IS, N%(I%)<=200 FOR ALL I). 31! 35 DIM #1%, M$(50%)=8%,N%(50%),X(200%,50%) 37 DIM #2%,N$(50%)=8%,M1$(50%)=64%,O%(50%),P%(50%),D$(50%)=8%, T(50%),D(10000%) 38 PRINT:PRINT"THIS IS CSPCVT, THE COSAP FILE CONVERSION PROGRAM.": PRINT"YOU MAY USE THIS PROGRAM TO CONVERT YOUR DATA FILE INTO": PRINT"A COSAP DATABANK." 39 PRINT:PRINT"BE CERTAIN THAT YOUR DATA FILE IS IN THE CORRECT FORMAT": PRINT"BEFORE YOU TRY TO USE CSPCVT TO CONVERT IT !!":PRINT "(SEE USER'S GUIDE TO COSAP, SECTION 3.)" 40 PRINT : PRINT "NAME OF FILE TO BE CONVERTED"; : INPUT LINE F$ : I%=INSTR(1%,F$,CHR$(13%)+CHR$(10%)) : GOTO 40 UNLESS I% : F$=LEFT(F$,I%-1%) : GO TO 40 IF F$="" 45 ON ERROR GOTO 50 : OPEN F$ FOR INPUT AS FILE 1% : GOTO 60 50 IF ERR<>5% THEN IF ERR<>10% THEN ON ERROR GOTO 0 ELSE PRINT "PROTECTION VIOLATION ON OPENIING ";F$ : RESUME 40 55 PRINT "CAN'T FINE ";F$ : RESUME 40 60 PRINT : PRINT "DATABANK NAME FOR FILE TO BE CREATED ( TO USE " "SAME NAME)"; : INPUT LINE O$ : IF ASCII(O$)=13% THEN O$=F$ : GOTO 80 70 I%=INSTR(1%,O$,CHR$(13%)+CHR$(10%)) : GOTO 60 UNLESS I% : O$=LEFT(O$,I%-1%) : GOTO 60 IF O$="" 80 Z%=INSTR(1%,O$,"[") : O$=LEFT(O$,Z%-1%) IF Z% : ON ERROR GO TO 90 : OPEN O$ FOR OUTPUT AS FILE 2% : GOTO 100 90 IF ERR<>10% THEN ON ERROR GOTO 0 ELSE PRINT : PRINT O$; " ALREADY EXISTS AND IS WRITE PROTECTED." : CLOSE 1% : RESUME 40 100 FOR I%=0% TO N%(0%) : N$(I%)=M$(I%) : O%(I%)=N%(I%) : NEXT I% 110 P%(0%)=1% : FOR I%=1% TO O%(0%) : P%,P%(I%)=P%(0%) : FOR J%=1% TO O%(I%) : D(P%)=X(J%,I%) : P%=P%+1% : NEXT J% : P%(0%)=P% : NEXT I% 120 D$=DATE$(0%) : D$=LEFT(D$,2%)+RIGHT(D$,4%) : T=1440-INT(TIME(0)/60) 130 FOR I%=1% TO O%(0%) : D$(I%)=D$ : T(I%)=T : NEXT I% 200 FOR I%=1% TO O%(0%) : FOR J%=I%+1% TO O%(0%) : IF N$(I%)=N$(J%) THEN PRINT "YOUR DATABANK CONTAINS ERRORS. TWO VARIABLES HAVE THE" " SAME NAME." : GOTO 220 210 NEXT J% : NEXT I% 220 PRINT:PRINT"YOU MUST NOW SUPPLY A DESCRIPTION OF DATABANK ";: PRINT O$:PRINT"AND A LABEL FOR EACH VARIABLE IN IT." 230 PRINT:PRINT"DESCRIPTION OF DATABANK (MAXIMUM OF 64 CHARACTERS" " - BEFORE V)" 231 INPUT LINE L$ : I%=INSTR(1%,L$,CHR$(13%)+CHR$(10%)) : GOTO 230 UNLESS I% : L$=LEFT(L$,I%-1%) : M1$(0%)=CHR$(95%)+LEFT(L$,63%) 235 FOR I%=1% TO O%(0%) 240 PRINT:PRINT"LABEL FOR VARIABLE ";N$(I%):PRINT "(MAXIMUM OF 32 CHARACTERS ------V)" 241 INPUT LINE L$ : I1%=INSTR(1%,L$,CHR$(13%)+CHR$(10%)): GOTO 240 UNLESS I1% : L$=LEFT(L$,I1%-1%) 250 M1$(I%)=CHR$(95%)+LEFT(L$,32%) : NEXT I% 255 CLOSE 1%,2% 260 NAME O$ AS O$+"<40>" 300 PRINT:PRINT"CONVERSION COMPLETE !!":PRINT"YOUR DATA IS NOW STORED " "IN DATABANK ";O$:PRINT"IN THE COSAP ACCOUNT, [100,250], WITH A " "PROTECTION CODE OF <40>." 302 PRINT"YOU MAY SAFELY LEAVE YOUR DATA THERE FOR 7 DAYS AT MOST." 305 PRINT"IF YOU WANT TO SAVE YOUR DATA FOR MORE THAN 7 DAYS, READ": PRINT"AND FOLLOW THE INSTRUCTIONS GIVEN IN PARAGRAPH 2.2 OF THE": PRINT"USER'S GUIDE TO COSAP." 32767 END