$CPU 8086 ' make compatible with XT systems $LIB ALL OFF ' turn off all PowerBASIC libraries $ERROR ALL OFF ' turn off all PowerBASIC error checking $OPTIMIZE SIZE ' optimize for smaller code $COMPILE UNIT ' compile to a UNIT (.PBU) '$COMPILE EXE ' compile to a UNIT (.PBU) DEFINT A-Z ' Required for all numeric functions, forces PB to not ' include floating point in UNIT (makes it smaller) '/*------------------------------------------------------------------*/ $CODE SEG "MLIB5" '/*------------------------------------------------------------------*/ ' F2ABC FILESPEC, STARTCOL, ENDCOL, ARRAY$() ' File to Array By Columns. ' Loads the contents of disk file FILESPEC into ARRAY$() starting ' at column SC for EC columns. ' The number of elements is placed into ARRAY$(0). ' Be sure to properly dimension ARRAY$(). ' EXAMPLE: F2ABC "c:\code\data.dat", 1, 30, M$() '/*------------------------------------------------------------------*/ SUB F2ABC(BYVAL F AS STRING, BYVAL SC AS INTEGER, BYVAL EC AS INTEGER, M$()) PUBLIC MCNT = 0 FFN = FREEFILE OPEN"I",FFN,F DO WHILE NOT EOF(FFN) LINE INPUT#FFN,T$ MCNT = MCNT + 1 M$(MCNT) = MID$(T$,SC,EC) LOOP CLOSE#FFN M$(0) = STR$(MCNT) END SUB '/*------------------------------------------------------------------*/ ' DIM M$(5000) ' F2ABC "C:\DATA\MARK\MEMOUT.TXT",1,30,M$() ' EA = VAL(M$(0)) ' FOR CNT = 1 TO EA ' PRINT M$(CNT) ' NEXT CNT ' INPUT Z