10
20
30 :
40 verbose%=TRUE
50 max%=19:year%=1861:month%=4
60 :
70 A%=0:X%=1:os%=((USR&FFF4)AND&FF00)DIV256
80 s$=".":fmax%=255:IFos%AND32:d$="\" ELSE IFos%AND8:d$="/" ELSE s$="/":d$=".":fmax%=10
90 DIM head$(max%),info$(max%),source$(max%)
100 FOR A%=0 TO max%:READ head$(A%):NEXT
110 DATA "HOUSEHOLD NUMBER","SURNAME","NAME","AGE","RELATIONSHIP","SEX","MARITAL STATUS","STREET ADDRESS"
120 DATA "OCCUPATION","BIRTH YEAR","BIRTH PLACE","BIRTH COUNTY","BIRTH COUNTRY","INDIVIDUAL NUMBER"
130 DATA "CIVIL PARISH","SUB-REGISTRATION DISTRICT","ENUMERATION DISTRICT","PIECE","PAGE","FOLIO"
140 :
150 ON ERROR REPORT:PROCClose_All:PRINT" at line ";ERL:IF ERR=17:QUIT ELSE END
160 age$="":laststreet$=""
170 in%=OPENIN("1861 Census Whitby.csv")
180 out%=OPENOUT(LEFT$("Whitby"+STR$year%+s$+"csv",fmax%))
190 IF out%=0:PRINT"Couldn't open output file, is it already open?":END
200 PROCcsv_wr(out%,head$())
210 IF verbose%:CLS:PRINT':FOR A%=0 TO max%:PRINTFNd0(A%,2);": ";head$(A%);":":NEXT:OFF
220 :
230 PROCcsv_rd(in%,source$()):
240 REPEAT
250 PROCcsv_rd(in%,source$())
260 IF source$(3)<>"":PROCprocess:PROCcsv_wr(out%,info$())
270 UNTILEOF#in%
280 CLOSE#out%:out%=0
290 CLOSE#in%:in%=0
300 QUIT
310 :
320 DEFPROCprocess
330 IF verbose%:VDU30:PRINT source$(4);", ";source$(3);SPC(60-LENsource$(4)-LENsource$(3))'source$(1);SPC(75-LENsource$(1))
340 :
350
360 A$=source$(7)
370 IF RIGHT$(A$,1)="m":A$=A$+"th":IFVALA$>1:A$=A$+"s"
380 IF RIGHT$(A$,1)="w":A$=A$+"eek":IFVALA$>1:A$=A$+"s"
390 IF RIGHT$(A$,1)="d":A$=A$+"ay":IFVALA$>1:A$=A$+"s"
400 source$(7)=A$
410 :
420
430
440 A$=source$(5):sex$=""
450 REPEAT:A$=FNswap(A$,"`","'"):UNTILINSTR(A$,"`")=0
460 IFFNuc(RIGHT$(A$,3))="DAU" :A$=A$+"ghter" :sex$="F"
470 IFRIGHT$(A$,4)="Vist" :A$=LEFT$(A$,LENA$-1)+"itor"
480 IFRIGHT$(A$,5)="Board":A$=A$+"er"
490 IFFNuc(LEFT$(A$,2))="GC" :A$="Grandc"+MID$(A$,3)
500 IFFNuc(LEFT$(A$,2))="GD" :A$="Grandd"+MID$(A$,3) :sex$="F"
510 IFFNuc(LEFT$(A$,2))="GS" :A$="Grands"+MID$(A$,3) :sex$="M"
520 IFFNuc(LEFT$(A$,3))="GTN":A$="Great-N"+MID$(A$,4)
530 IFFNuc(RIGHT$(A$,4))="GSON":A$=LEFT$(A$,LENA$-4)+"Grandson":sex$="M"
540 IFLEFT$(A$,7)="Grand M":A$="Grandm"+MID$(A$,8)
550 IFRIGHT$(A$,5)="Broth":A$=A$+"er" :sex$="M"
560 IFRIGHT$(A$,4)="Fath" :A$=A$+"er" :sex$="M"
570 IFRIGHT$(A$,3)="Mot" :A$=A$+"her" :sex$="F"
580 IFRIGHT$(A$,4)="Cous" :A$=A$+"in"
590 IFFNuc(LEFT$(A$,3)) ="MIL":A$="Mother-in-Law"+MID$(A$,6)
600 IFFNuc(LEFT$(A$,3)) ="FIL":A$="Father-in-Law"+MID$(A$,6)
610 IFFNuc(LEFT$(A$,3)) ="DIL":A$="Daughter-in-Law"+MID$(A$,6)
620 IFFNuc(RIGHT$(A$,3))="DIL":A$=LEFT$(A$,LENA$-3)+"Daughter-in-Law"
630 IFFNuc(LEFT$(A$,3)) ="BIL":A$="Brother-in-Law"+MID$(A$,6)
640 IFRIGHT$(A$,3)="Sit" :A$=LEFT$(A$,LENA$-1)+"ster" :sex$="F"
650 IFRIGHT$(A$,4)="Lodg" :A$=A$+"er"
660 IFLEFT$(A$,4) ="Sons" :A$="Son's"+MID$(A$,5)
670 IFLEFT$(A$,4) ="St D" :A$="Step-d"+MID$(A$,5) :sex$="F"
680 IFLEFT$(A$,5) ="St So":A$="Step-s"+MID$(A$,5) :sex$="M"
690 IFLEFT$(A$,5) ="St Si":A$="Step-s"+MID$(A$,5) :sex$="F"
700 IFLEFT$(A$,6) ="Step-D":A$="Step-d"+MID$(A$,7) :sex$="F"
710 IFLEFT$(A$,5) ="Stepd":A$="Step-"+MID$(A$,5) :sex$="F"
720 IFLEFT$(A$,3) ="StD" :A$="Step-d"+MID$(A$,4) :sex$="F"
730 IFLEFT$(A$,2) ="Sd" :A$="Step-"+MID$(A$,2):sex$="F"
740 IFFNuc(LEFT$(A$,4))="STSO":A$="Step-so"+MID$(A$,5) :sex$="M"
750 IFLEFT$(A$,4) ="StSi" :A$="Step-si"+MID$(A$,5) :sex$="F"
760 IFRIGHT$(A$,4)="Sist" :A$=A$+"er" :sex$="F"
770 IFRIGHT$(A$,4)="Serv" :A$=A$+"ant"
780 IFLEFT$(A$,4) ="WifS" :A$="Wife's "+MID$(A$,4) :sex$="F"
790 IFLEFT$(A$,4) ="Wif " :A$="Wife's"+MID$(A$,4)
800 IFLEFT$(A$,3) ="Wi " :A$="Wife's"+MID$(A$,3)
810 IFRIGHT$(A$,4)="Neic" :A$=A$+"e" :sex$="F"
820 IFRIGHT$(A$,4)="Moth" :A$=A$+"er" :sex$="F"
830 IFRIGHT$(A$,4)="Neph" :A$=A$+"ew" :sex$="M"
840 IFLEFT$(A$,5) ="Neph ":A$="Nephew's"+MID$(A$,5)
850 IFLEFT$(A$,4) ="Nep " :A$="Nephew's"+MID$(A$,4)
860 IFLEFT$(A$,4) ="LodW" :A$="Lodger's "+MID$(A$,4)
870 IFLEFT$(A$,5) ="Lodg ":A$="Lodger's"+MID$(A$,5)
880 IFLEFT$(A$,4) ="Lod " :A$="Lodger's"+MID$(A$,4)
890 IFLEFT$(A$,5) ="Lod's":A$="Lodger's"+MID$(A$,6)
900 IFLEFT$(A$,5) ="Wifes":A$="Wife's"+MID$(A$,6)
910 IFLEFT$(A$,5) ="Vist ":A$="Visitor's"+MID$(A$,5)
920 IFRIGHT$(A$,3)="App" :A$=A$+"rentice"
930 IFRIGHT$(A$,4)="Asst" :A$=LEFT$(A$,LENA$-1)+"istant"
940 IFRIGHT$(A$,6)="Assist":A$=A$+"ant"
950 IFRIGHT$(A$,5)="Servt":A$=LEFT$(A$,LENA$-1)+"ant"
960 IFLEFT$(A$,2)="Hk" :A$="House"+MID$(A$,2)
970 IFA$="Houskeep" :A$="Housekeeper"
980 IFA$="F Wife" :A$="Father's Wife" :sex$="F"
990 IFA$="Dau/Lodger" :A$="Daughter/Lodger" :sex$="F"
1000 IFA$="Dau(Step)" :A$="Step-Daughter" :sex$="F"
1010 IFA$="Bro I Law" :A$="Brother-in-Law" :sex$="M"
1020 IFA$="U" :A$="Uncle" :sex$="M"
1030 IFA$="Wofe" :A$="Wife" :sex$="F"
1040 IFA$="Srv" :A$="Servant"
1050 IFA$="Teach" :A$="Teacher"
1060 source$(5)=A$
1070 :
1080
1090 source$(4)=FNuc(LEFT$(source$(4),1))+MID$(source$(4),2)
1100 A$=source$(3)
1110 RESTORE +0
1120 READ nick$,name$
1130 REPEAT
1140 A$=FNswap(A$,nick$+" ",name$+" ")
1150 IF A$=nick$:A$=FNswap(A$,nick$,name$)
1160 READ nick$,name$
1170 UNTILnick$="*"
1180 source$(3)=FNuc(LEFT$(A$,1))+MID$(A$,2)
1190 DATA Chas,Charles,Wm,William,Geo,George,Elizth,Elizabeth,Fredk,Frederick,Hannh,Hannah
1200 DATA Thos,Thomas,Benj,Benjamin,Charlot,Charlotte,Eliz,Elizabeth,Elizth,Elizabeth
1210 DATA Johnathan,Jonathan,Robt,Robert,Hanh,Hannah,Hanna,Hannah,Richd,Richard,Ths,Thomas
1220 DATA Margt,Margeret,Thomsa,Thomas
1230 DATA *,*
1240 :
1250
1260 IFsex$="" THEN
1270 A$=source$(5):
1280 IFA$="Son" :sex$="M"
1290 IFA$="Wife" :sex$="F"
1300 IFLEFT$(A$,7)="Brother" :sex$="M"
1310 IFRIGHT$(A$,4)="iece" :sex$="F"
1320 IFRIGHT$(A$,5)="ephew" :sex$="M"
1330 IFLEFT$(A$,6)="Mother" :sex$="F"
1340 IFLEFT$(A$,8)="Daughter":sex$="F"
1350 IFFNuc(LEFT$(A$,3))="SON ":sex$="M"
1360 ENDIF
1370 IF sex$="" THEN
1380 A$=source$(11):
1390 IFA$="Wife" :sex$="F"
1400 IFINSTR(A$,"Wife ") :sex$="F"
1410 IFINSTR(A$,"Widower"):sex$="M"
1420 IFINSTR(A$,"Widow ") :sex$="F"
1430 IFA$="Widow" :sex$="F"
1440 IFA$="Widr" :sex$="M"
1450 IFA$="Wid" :sex$="F"
1460 ENDIF
1470
1480
1490 IF sex$="" THEN
1500 A$=source$(3):
1510 RESTORE +0
1520 READ s$
1530 REPEAT
1540 READ n$
1550 REPEAT
1560 IF A$=n$ OR LEFT$(A$,LENn$+1)=n$+" " OR RIGHT$(A$,LENn$+1)=" "+n$:sex$=s$
1570 READ n$
1580 UNTILn$="*" OR sex$<>""
1590 READ s$
1600 UNTILs$="*" OR sex$<>""
1610 ENDIF
1620 IF FNuc(source$(5))="SILAW":IFsex$="M":source$="Son-in-Law"
1630 IF FNuc(source$(5))="SILAW":IFsex$="F":source$="Sister-in-Law"
1640 IF sex$="F":sex$="Female"
1650 IF sex$="M":sex$="Male"
1660 DATA M
1670 DATA Aaron,Abel,Abraham,Adam,Albert,Alexander,Alfred,Algenon,Allan,Ambrose,Andrew,August,Amos
1680 DATA Benjamin,Christopher,Daniel,David,Edgar,Edward,Edwin,Charles,Charley,Anthony,Archibald,Augustus
1690 DATA Austin,Bernard,Charlie,Cornelius,Cuthbert.Dennis,Ebenezer,Edmond,Elijah,Ernest,Enoch,Enock
1700 DATA Eustace,Frederick,George,Gilbert,Harry,Harrison,Henry,Hugo,Isaac,Jackson,James,Jacob,John
1710 DATA Joseph,Joshua,Mark,Matthew,Michael,Nathaniel,Nicholas,Oliver,Patrick,Paul,Peter,Philip
1720 DATA Ralph,Richard,Robert,Samuel,Soloman,Stephen,Thomas,Victor,William,Walter,Anderson
1730 DATA Dennis,Edmund,Jonathan,Cuthbert,Gideon,Godfrey,Hamilton,Hugh,Jeremiah,Jerimiah,Luke
1740 DATA Neil,Randolph,Percival,Stewart,Timothy,Tom,Elisha,Estill,Francis,Frank,Hamilton,Israel
1750 DATA Johann,Johnson,Lancelot,Leonard,Levi,Louis,Luke,Marmaduke,Martin,Matthias,Miles,Moses,Randolph
1760 DATA Robinson,Roderick,Rodrick,Sampson,Silvester,Simon,Simpson,Snowdon,Stephenson,Theophilius
1770 DATA Vallance,Wilson,Jasper,Seth,Stevenson,Elmer,William?,Pearson
1780 DATA *,F
1790 DATA Ada,Agnes,Alice,Allice,Amelia,Ann,Annie,Ninah,Amy,Anna,Anne,Grace,Hannah,Hanna,Harriet
1800 DATA Bridget,Caroline,Catherine,Charlotte,Barbara,Christiana,Esther,Euphemia,Faith,Fanny,Florence
1810 DATA Elizabeth,Jane,Betsy,Bettina,Diana,Dianah,Dinah,Dorothy,Eleanor,Eliza,Ellen,Emily,Emma
1820 DATA Henrietta,Isabella,Katherine,Julia,Lucy,Lydia,Margeret,Maria,Martha,Mary,Matilda,Rachel
1830 DATA Rebecca,Ruth,Sarah,Sophia,Susan,Susanna,Susannah,Elleanor,Allicia,Betty,Charlottete
1840 DATA Christine,Elizabetha,Diane,Georgiana,Gertrude,Isabel,Janet,Jemima,Kate,Louisa,Jean
1850 DATA Margaret,Miriam,Rachael,Priscilla,Phoebe,Ursulla,Elvira,Frances,Louisa,Lucia,Marianne,Mirriam
1860 DATA Marsha,May,Meg,Mercy,Nancy,Rosana,Rosetta,Selina,Susanne,Tabatha,Tabitha,Ursulla?,Mademouselle
1870 DATA Phillis,Emilly,Janice
1880 DATA *,*
1890 :
1900
1910 A$=source$(6)
1920 IFA$="Spins" :A$="Spinster"
1930 IFA$="Vist" :A$="Visitor"
1940 IFA$="Widr" :A$="Widower"
1950 IFA$="Wid" :A$="Widow"
1960 IFA$="W"ORA$="w":A$="Widow"
1970 IFA$="M"ORA$="m":A$="Married"
1980 IFA$="U"ORA$="u":A$="Single"
1990 IFA$="" :A$="Single"
2000 source$(6)=A$
2010 :
2020
2030 A$=FNs(source$(1))
2040 :
2050
2060 RESTORE +0
2070 READ B$:REPEAT
2080 A$=FNswap(A$,"s "+B$,"'s "+B$)
2090 READ B$
2100 UNTILB$="*"
2110 DATA B,C,G,I,L,R,S,T,W,Y,*
2120 REPEAT:A$=FNswap(A$,"`","'"):UNTILINSTR(A$,"`")=0
2130 REPEAT:A$=FNswap(A$,"''","'"):UNTILINSTR(A$,"''")=0
2140 :
2150
2160 A$=FNswap(A$,"St A","St. A")
2170 A$=FNswap(A$,"St M","St. M")
2180 A$=FNswap(A$,"St H","St. H")
2190 A$=FNswap(A$,"St. Ann ","St. Ann's ")
2200 A$=FNswap(A$,"St. Hilda ","St. Hilda's ")
2210 A$=FNswap(A$,"OfficeYard","Office Yard")
2220 IFINSTR(A$,"Yard")=0:A$=FNswap(A$,"Old Post Office","Old Post Office Yard")
2230 IFINSTR(A$,"Street")=0:IFINSTR(A$,"St ") OR RIGHT$(A$,2)="St":A$=FNswap(A$,"St","Street")
2240 IFINSTR(A$,"Square")=0:A$=FNswap(A$,"Sq","Square")
2250 A$=FNswap(A$,"M Chapel","Methodist Chapel")
2260 A$=FNswap(A$,"2and","2 and")
2270 A$=FNswap(A$,"Hill H","Hill, H")
2280 A$=FNswap(A$,"Inn H","Inn, H")
2290 A$=FNswap(A$,"Hotel ","Hotel, ")
2300 A$=FNswap(A$,"gg P","gg, P")
2310 A$=FNswap(A$,"Cros's","Cross")
2320 A$=FNswap(A$,"Bark T","Park T")
2330 A$=FNswap(A$,"Yard ","Yard, ")
2340 A$=FNswap(A$,"Mc Locklin's","McLachlin's")
2350 A$=FNswap(A$,"Easterley's","Easterby")
2360 A$=FNswap(A$,"Muncarter","Muncaster")
2370 A$=FNswap(A$,"Water Stead","Waterstead")
2380 A$=FNswap(A$,"Stokesley","Stakesby")
2390 A$=FNswap(A$,"Stokesly","Stakesby")
2400 A$=FNswap(A$,"VueT","Vue T")
2410 A$=FNswap(A$,"Tce","Terrace")
2420 A$=FNswap(A$,"Trc","Terrace")
2430 A$=FNswap(A$,"Place ","Place, ")
2440 A$=FNswap(A$,"Street ","Street, ")
2450 A$=FNswap(A$,"Square ","Square, ")
2460 A$=FNswap(A$,"Terrace ","Terrace, ")
2470 A$=FNswap(A$,"Cottage ","Cottage, ")
2480 A$=FNswap(A$,"Esplanade ","Esplanade, ")
2490 A$=FNswap(A$,"Briggewath","Briggswath")
2500 A$=FNswap(A$,"Bruson's","Benson's")
2510 A$=FNswap(A$,"7H","7 H")
2520 A$=FNswap(A$,"Daltwick","Saltwick")
2530 :
2540
2550 A$=FNswap(A$,")","")
2560 A$=FNswap(A$,"(","")
2570 :
2580
2590 READ street$
2600 REPEAT
2610 IF LEFT$(A$,LENstreet$)=street$ AND A$<>street$ THEN
2620 A$=FNs(MID$(A$,LENstreet$+2))+", "+street$
2630 ENDIF
2640 READ street$
2650 UNTIL street$="*"
2660 DATA "Baxtergate","Church Street","Cliff Street","Flowergate","8 Flowergate","St. Ann's Staith"
2670 DATA "Haggersgate","Victoria Road","Waterstead Lane"
2680 DATA *
2690 :
2700
2710 IFLEFT$(A$,2)="No":IFVALMID$(A$,3):A$=FNs(MID$(A$,3))
2720 IFLEFT$(A$,3)="Nos":IFVALMID$(A$,4):A$=FNs(MID$(A$,4))
2730 IFVALRIGHT$(A$,2) THEN
2740 A$=STR$VALRIGHT$(A$,2)+" "+FNs(LEFT$(A$,LENA$-2))
2750 ENDIF
2760 IFRIGHT$(A$,3)=" no":A$=LEFT$(A$,LENA$-3)
2770 IFRIGHT$(A$,1)=",":A$=LEFT$(A$,LENA$-1)
2780 :
2790
2800 READ street$
2810 REPEAT
2820 READ yard$
2830 REPEAT
2840 A$=FNadd(A$,yard$,street$)
2850 READ yard$
2860 UNTILyard$="*"
2870 READ street$
2880 UNTILstreet$="*"
2890 :
2900 DATA "Church Street"
2910 DATA "Kiln","New Way","Smith's","Black Horse Yard","Fish Ghaut","St. Michael's Church"
2920 DATA "Black Horse Yard","Dispensary","Blackburn's","Lee's","Chapel","Benson's","Argument's"
2930 DATA "Timber"
2940 DATA *
2950 DATA "Baxtergate"
2960 DATA "Black Horse Inn","Talbot Hotel"
2970 DATA *
2980 DATA "Flowergate"
2990 DATA "Little Angel","United Free Church"
3000 DATA *
3010 DATA "St. Ann's Staith"
3020 DATA "Buck Inn Yard","Old Post Office Yard","Burnett"
3030 DATA *
3040 DATA "Haggersgate"
3050 DATA "Paradise","Bakehouse","Elephant","Muncaster"
3060 DATA *
3070 DATA "Bagdale"
3080 DATA "Carr's"
3090 DATA *
3100 DATA "Waterstead Lane"
3110 DATA "Bogg Hall"
3120 DATA *
3130 DATA "Green Lane"
3140 DATA "New Gardens","Folly"
3150 DATA *
3160 DATA "Larpool"
3170 DATA "Cock","Crowdy"
3180 DATA *
3190 DATA "Spital Bridge"
3200 DATA "Patent","White Hall"
3210 DATA *
3220 DATA *
3230 :
3240 IFINSTR(A$,"Hudson Street")=0:A$=FNswap(A$,"Abbey Terrace","Abbey Terrace East, Church Lane")
3250 :
3260
3270 IF A$="Flowergate" OR A$="Haggersgate":laststreet$=A$
3280 IF A$="Miller's Yard":A$=A$+", "+laststreet$
3290 :
3300 REPEAT:A$=FNswap(A$," "," "):UNTILINSTR(A$," ")=0
3310 source$(1)=A$
3320 :
3330
3340 A%=VALsource$(0)
3350 parish$="":ed$=""
3360 IF A%>=171587:parish$="Whitby" :ed$="1"
3370 IF A%>=172399:parish$="Whitby" :ed$="2"
3380 IF A%>=173179:parish$="Whitby" :ed$="3"
3390 IF A%>=174139:parish$="Whitby" :ed$="4"
3400 IF A%>=174800:parish$="Whitby" :ed$="5"
3410 IF A%>=175442:parish$="Whitby" :ed$="6"
3420 IF A%>=176186:parish$="Whitby" :ed$="7"
3430 IF A%>=176994:parish$="Whitby" :ed$="8"
3440 IF A%>=177795:parish$="Whitby" :ed$="9"
3450 IF A%>=178533:parish$="Whitby" :ed$="10"
3460 IF A%>=179264:parish$="Whitby" :ed$="11"
3470 IF A%>=179710:parish$="Ruswarp":ed$="11"
3480 IF A%>=180015:parish$="Ruswarp":ed$="12"
3490 IF A%>=180088:parish$="Whitby" :ed$="12"
3500 IF A%>=180696:parish$="Ruswarp":ed$="13"
3510 IF A%>=181307:parish$="Whitby" :ed$="13"
3520 IF A%>=181368:parish$="Ruswarp":ed$="14"
3530 IF A%>=182013:parish$="Ruswarp":ed$="15"
3540 IF A%>=182676:parish$="Ruswarp":ed$="16"
3550 IF A%>=182713:parish$="":ed$=""
3560
3570
3580
3590
3600
3610 IFLENsource$(14)>1:parish$=source$(14)
3620 IFVALsource$(15) :ed$=source$(15)
3630 :
3640
3650 A$=source$(13)
3660 IFRIGHT$(A$,1)>"@":A$=STR$VALA$+RIGHT$(A$,1) ELSE IF A$<>"":A$=STR$VALA$
3670 source$(13)=A$
3680 :
3690 IFVALsource$(8)=0:source$(8)=""
3700 :
3710
3720 info$()=""
3730 info$(0) =source$(8) :
3740 info$(1) =source$(4) :
3750 info$(2) =source$(3) :
3760 age$=source$(7):info$(3)=age$ :
3770 info$(4) =source$(5) :
3780 info$(5) =sex$ :
3790 info$(6) =source$(6) :
3800 info$(7) =source$(1) :
3810 info$(8) =source$(9) :
3820 IF VALage$ THEN
3830 info$(9) ="abt "+STR$(year%-VALage$-1)
3840 IF INSTR(age$,"m") THEN
3850 info$(9)=STR$(year%-(VALage$-month%+13)DIV12)
3860 ENDIF
3870 IF INSTR(age$,"d") OR INSTR(age$,"w"):info$(9)=STR$year%
3880 SAVE :
3890 IFsource$(11)<>"":IFsource$(10)<>"":info$(10)=source$(11)+", "+source$(10)
3900 IFinfo$(9)="":info$(10)=source$(11)+source$(10)
3910 IFinfo$(9)="":info$(10)=source$(17) :
3920 A$=info$(10)
3930 IF MID$(A$,4,2)=", " THEN
3940 info$(11)=LEFT$(A$,3) :
3950 info$(12)="England" :
3960 IF info$(11)="WLS":info$(12)="Wales"
3970 IF info$(11)="IRL":info$(12)="Ireland"
3980 IF info$(11)="SCT":info$(12)="Scotland"
3990 A$=MID$(A$,6)
4000 ENDIF
4010 A%=INSTR(A$,", "):IF A%:IF info$(11)="":info$(11)=LEFT$(A$,A%-1):A$=MID$(A$,A%+2)
4020 IF LEFT$(A$,2)="N ":A$="North"+MID$(A$,2)
4030 IF LEFT$(A$,2)="S ":A$="South"+MID$(A$,2)
4040 IF LEFT$(A$,2)="E ":A$="East"+MID$(A$,2)
4050 IF LEFT$(A$,2)="W ":A$="West"+MID$(A$,2)
4060 info$(10)=A$ :
4070 info$(13)=source$(0) :
4080 info$(14)=parish$ :
4090
4100
4110 info$(15)="Whitby" :
4120 info$(16)=ed$ :
4130 info$(17)=source$(12) :
4140 info$(18)="" :
4150 info$(19)=source$(13) :
4160 :
4170 IF verbose%:FOR A%=0 TO max%:PRINTTAB(36,A%+2);LEFT$(info$(A%),40);SPC(40-LENLEFT$(info$(A%),40)):NEXT
4180 ENDPROC
4190 :
4200 DEFFNadd(addr$,yard$,street$)
4210 IF INSTR(addr$,yard$+" "):IF INSTR(addr$,street$)=0:=addr$+", "+street$
4220 IF RIGHT$(addr$,LENyard$)=yard$:IF INSTR(addr$,street$)=0:=addr$+", "+street$
4230 =addr$
4240 :
4250 DEFFNswap(in$,match$,swap$)
4260 A%=INSTR(in$,match$):IF A%:in$=LEFT$(in$,A%-1)+swap$+MID$(in$,A%+LENmatch$)
4270 =in$
4280 :
4290 :
4300 DEFPROCClose_All
4310 out%=out%:IFout%:A%=out%:out%=0:CLOSE#A%
4320 in%=in%:IFin%:A%=in%:in%=0:CLOSE#A%
4330 ENDPROC
4340 :
4350 DEFFNd0(A%,N%)=RIGHT$("00000000"+STR$A%,N%)
4360 DEFFNuc(A$):LOCAL B$:IFA$="":=""
4370 REPEATB$=B$+CHR$(ASCA$AND((A$<"@")OR&DF)):A$=MID$(A$,2):UNTILA$="":=B$
4380 DEFFNlc(A$):LOCAL B$:IFA$="":=""
4390 REPEATB$=B$+CHR$(ASCA$OR((A$<"_")AND&20)):A$=MID$(A$,2):UNTILA$="":=B$
4400 DEFFNs(A$):IFLEFT$(A$,1)=" ":REPEATA$=MID$(A$,2):UNTILLEFT$(A$,1)<>" "
4410 IFRIGHT$(A$,1)=" ":REPEATA$=LEFT$(A$,LENA$-1):UNTILRIGHT$(A$,1)<>" "
4420 =A$
4430 :
4440 DEFPROCcsv_wr(o%,array$())
4450 LOCAL n%,q%:n%=DIM(array$(),1)
4460 FOR A%=0 TO n%:A$=array$(A%)
4470 q%=INSTR(A$,","):IFq%=0:q%=ASCA$=48:IFq%=0:q%=LENSTR$VALA$>8:IFq%=0:IFVALA$:q%=INSTR(A$,"/")
4480 IF q%:A$=""""+A$+"""":IFINSTR(A$,",")=0:A$="="+A$
4490 BPUT#o%,A$;:IF A%<>n%:BPUT#o%,",";
4500 NEXT A%:BPUT#o%,""
4510 ENDPROC
4520 :
4530 DEFPROCcsv_rd(i%,array$())
4540 n%=0:array$()="":A$=GET$#i%:IFA$="":A$=GET$#i%
4550 REPEAT:A%=INSTR(A$+",",",")
4560 IF LEFT$(A$,1)="""" THEN
4570 A%=INSTR(A$+",",""",")+1:array$(n%)=MID$(A$,2,A%-3)
4580 ELSE
4590 A%=INSTR(A$+",",","):array$(n%)=LEFT$(A$,A%-1)
4600 ENDIF
4610 A$=MID$(A$,A%+1):n%=n%+1
4620 UNTILA$=""
4630 ENDPROC