THE WELCH COMPANY
440 Davis Court #1602
San Francisco, CA 94111-2496
415 781 5700


S U M M A R Y


DIARY: July 18, 1997 08:58 AM Friday; Rod Welch

Fixed SDS global pointer batch routine problem by using Supersort.

1...Summary/Objective
2...Eliminate Extraneous End of File (EOF) in SDS Pointer File
3...Original 251.BAT


..............
Click here to comment!

CONTACTS 
0201 - Dep Natrl Recrs & Consrvtn         406 444 6699 fax 6721
020101 - Mr. Wayne Wetzel; Deputy Director =406 444 6722; Director's Office

SUBJECTS
SDS Reports, Subjects
251 Pointer Update routine
Summary pointers, 910304
Supersort, 910306
1a_eof, eof problem, 910307

0807 -    ..
0808 - Summary/Objective
0809 -
080901 - Follow up ref SDS 22 0000, ref SDS 21 0000.
080902 -
080903 - Seemed to find some prior records that suggest a solution.  Sent Wayne
080904 - a note I am changing 251.bat, ref DIT 1 line 30. Think I fixed this
080905 - today, by adding call to Supersort to remove EOF marks.  Sent a new
080906 - version of 251.bat and of c: sd 03 001, to Wayne via Internet, per
080907 - ref DIT 2 line 30.
080908 -
080909 -    [See change submitted on 970719, ref SDS 23 line 79.]
080910 -
080911 -
080912 -
080913 -  ..
0810 -
0811 -
0812 - Progress
0813 -
081301 - Eliminate Extraneous End of File (EOF) in SDS Pointer File
081302 -
081303 - Follow up ref SDS 22 0001, ref SDS 21 TK4O.
081304 -
081305 - This seems to be a DOS copy problem reported on 921029, ref SDS 5
081306 - LM3N, which Morris considered and resulted in changing his getf.asm
081307 - file per ref SDS 5 HN6F  It related to a prior use of the DOS copy
081308 - command on 910306. ref SDS 3 HN7I  Original concept of global pointers
081309 - user DOS copy to concatenate files is explained on 910305. ref SDS 1
081310 - EO9M
081311 -
081312 -  ..
081313 - There is a statement that copying files together adds an EOF mark,
081314 - which evidently is char 26.  Earlier work recognized this on 910305.
081315 - ref SDS 2 TY4G   The EOF can be eliminated by sorting the whole thing
081316 - with a no-o parameter, reported on 910321. ref SDS 4 5R9O  The record
081317 - on 921029 says I want to avoid this sort in order to save time.
081318 - ref SDS 5 XZ5K  Now, I am thinking that processors which today are 4
081319 - times faster than in 1992, when this concern was raised, eliminate
081320 - concern about extra time to run Supersort.
081321 -
081322 -    [On 970719 no-o did not clear the problem as expected. ref SDS 23
081323 -    0F9R
081324 -
081325 -      ..
081326 -     Question:  Are we doing this final sort?
081327 -
081328 -                Why are the 00003 and 00005 files working correctly?
081329 -                see on 970711, ref SDS 19 KG5J, and also on 970714.
081330 -                ref SDS 20 VN8F
081331 -
081332 -  ..
081333 - See work on 921030 where efforts were made to cleared this problem
081334 - previously for both 001 and 0011. ref SDS 6 BD3L
081335 -
081336 - It looks like we are not doing this sort on 001 but are doing it on
081337 - 0011 which processes References.  There is no sort at all for the
081338 - Control Field pointers, which are assembled solely by copying the
081339 - weekly files into yearly files for each user, then copying all of the
081340 - yearly files together into a single large file.
081341 -
081342 -  ..
081343 - A possible reason that References and Contacts are working is because
081344 - we are using Supersort to select various parts of these pointers, and
081345 - so the no-o parameter is applied to each of these files.
081346 -
081347 -  ..
081348 - This afternoon, I changed the code by adding a Supersort call
081349 - that uses merge so the no-o param can be applied to both the 00001 and
081350 - the 00005 files.  I also added a "nul" param on the copy command for
081351 - the References, so this will no longer appear on the screen.
081352 -
081353 - I thought I tested this new routine on the test file from Wayne's
081354 - computer.
081355 -
081356 -
081357 -
081358 -  ..
0814 -
0815 -
0816 - 251.bat
0817 -
081701 - Line 10 - eliminated the commands that created the DOS directory
081702 - structure for new Users to store the global pointers.  This previously
081703 - took 4 commands, and I was able to remove it because I realized we
081704 - could accomplish the objective with Morris' savx in 001.
081705 -
081706 -
081707 -  ..
081708 - Line 37 - changed...
081709 -
081710 -                    copy \kq\* e:\sd\08\00000\06\00001 >docs1
081711 -        ...to
081712 -                    copy \kq\* docs1 >nul
081713 -
081714 -  ..
081715 - This puts the large file in the temporary processing directory
081716 - instead of the final location, so we can then process the file with
081717 - Supersort merge command and the no-o param to eliminate the EOF
081718 - marks.  Supersort recommends using different names for input and
081719 - output files, so we input docs1 and output
081720 -
081721 -                    e:\sd\08\00000\06\00001
081722 -
081723 -  ..
081724 - So we add the following line
081725 -
081726 - c:\sd\01\s i 300 cr;m docs1;o e:\sd\08\00000\06\00001;no-o;k 1 1;g >nul
081727 -
081728 -    ...per record on 910321. ref SDS 4 M64J
081729 -
081730 -      [See follow up testing indicating this does not work, ref SDS 23
081731 -      line 105; so I changed the code back at, ref SDS 23 line 244.]
081732 -
081733 -
081734 -  ..
081735 - Original 251.BAT
081736 -
081737 - This is the code that we had before I made the changes per above.
081738 -
081739 - @echo off
081740 - cls
081741 - C:
081742 - CD\SD\10
081743 - IF not exist E:\SD\08\00000\06\00001 MD E:\SD > NUL
081744 - IF not exist E:\SD\08\00000\06\00001 MD E:\SD\08 > NUL
081745 - IF not exist E:\SD\08\00000\06\00001 MD E:\SD\08\00000 > NUL
081746 - IF not exist E:\SD\08\00000\06\00001 MD E:\SD\08\00000\06 > NUL
081747 - DEL C:\SD\08\00000\06\* <C:\SD\01\YB
081748 - md \kq
081749 - dir d:\sd\08 > dirx
081750 - e dirx c:\sd\03\001
081751 - copy \kq\* e:\sd\08\00000\06\00001 >docs1
081752 - del \kq\* <C:\SD\01\YB
081753 - e dirx c:\sd\03\0011
081754 - copy \kq\* docs2
081755 - s i 400 cr;m docs2;o e:\sd\08\00000\06\00003;no-d;k 35 61;g >nul
081756 - s i 400 cr;s docs2;o e:\sd\08\00000\06\00004;no-o;cf docs >nul
081757 - del \kq\* <C:\SD\01\YB
081758 - e dirx c:\sd\03\0011 #2
081759 - copy \kq\* e:\sd\08\00000\06\00005 >docs4
081760 - del \kq\* <C:\SD\01\YB
081761 - del dirx*
081762 - del docs*
081763 - rd \kq
081764 -
081765 -
081766 -  ..
0818 -
0819 -
0820 - 001
0821 -   ..
082101 - Line 15 - added a savx command to create the directory for the
082102 - global pointers and this permitted eliminating this DOS code in the
082103 - 251.bat file.  Formerly, we had a string of if exist... commands in
082104 - 251.bat.
082105 -
082106 -
082107 -
082108 -
082109 -
082110 -
082111 -
082112 -
082113 -
082114 -
082115 -
Distribution. . . . See "CONTACTS"