DATA Ashcraft, Ashcroft, Gauss, Ghosh, Hilbert, Heilbronn, Lee, Lloyd DATA Moses, Pfister, Robert, Rupert, Rubin, Tymczak, Soundex, Example FOR i% = 1 TO 16 READ name$ PRINT """" name$ """" TAB(15) FNsoundex(name$) NEXT END DEF FNsoundex(name$) LOCAL i%, n%, p%, n$, s$ name$ = FNupper(name$) n$ = "01230129022455012623019202" s$ = LEFT$(name$,1) p% = VALMID$(n$, ASCs$ - 64, 1) FOR i% = 2 TO LEN(name$) n% = VALMID$(n$, ASCMID$(name$,i%,1) - 64, 1) IF n% IF n% <> 9 IF n% <> p% s$ += STR$(n%) IF n% <> 9 p% = n% NEXT = LEFT$(s$ + "000", 4) DEF FNupper(A$) LOCAL A%,C% FOR A% = 1 TO LEN(A$) C% = ASCMID$(A$,A%) IF C% >= 97 IF C% <= 122 MID$(A$,A%,1) = CHR$(C%-32) NEXT = A$