24 lines
772 B
Plaintext
24 lines
772 B
Plaintext
100 DECLARE EXTERNAL FUNCTION FNSoundex$
|
|
110
|
|
120 DATA Ashcraft, Ashcroft, Gauss, Ghosh, Hilbert, Heilbronn, Lee, Lloyd
|
|
130 DATA Moses, Pfister, Robert, Rupert, Rubin, Tymczak, Soundex, Example
|
|
140 FOR i = 1 TO 16
|
|
150 READ name$
|
|
160 PRINT """"; name$; """"; TAB(15); FNsoundex$(name$)
|
|
170 NEXT i
|
|
180 END
|
|
190
|
|
200 EXTERNAL FUNCTION FNsoundex$(name$)
|
|
210 LET name$ = UCASE$(name$)
|
|
220 LET n$ = "01230129022455012623019202"
|
|
230 LET s$ = name$(1:1)
|
|
240 LET p = VAL(n$(ORD(s$) - 64 : ORD(s$) - 64))
|
|
250 FOR i = 2 TO LEN(name$)
|
|
260 LET n = VAL(n$(ORD(name$(i:i)) - 64: ORD(name$(i:i)) - 64))
|
|
270 IF n <> 0 AND n <> 9 AND n <> p THEN LET s$ = s$ & STR$(n)
|
|
280 IF n <> 9 THEN LET p = n
|
|
290 NEXT i
|
|
300 LET s$ = s$ & "000"
|
|
310 LET FNSoundex$ = s$(1:4)
|
|
320 END FUNCTION
|