Files
2019-09-28 10:14:18 -04:00

76 lines
1.4 KiB
LLVM

/*
* @progname afn_match.ll
* @version 1.0 of 1995-08-25
* @author Scott McGee
* @category
* @output Text
* @description
*
* Find individuals with matching Ancestral File numbers, report matches.
*
This program is designed to search a database and find individuals with
the same AFN's. The output is a report of such matching individuals.
Last updated 25 Aug, 1995 by Scott McGee (smcgee@microware.com)
*/
global(first)
proc main (){
table(t)
set(first, 1)
print("Processing database ")
set(cnt, 0)
forindi(indi, n){
if(afn, get_afn(indi)){
if(match, lookup(t, afn)){
call found_match(indi, save(afn), match)
}else{
insert(t, save(afn), indi)
}
}
incr(cnt)
if(eq(cnt, 100)){
set(cnt, 0)
print(".")
}
}
}
func get_afn(indi){
if(indi){
fornodes(inode(indi), subnode){
if(eqstr(tag(subnode), "AFN")){
return(value(subnode))
}
}
}
return(0)
}
proc found_match(i2, afn, i1){
if(first){
set(first, 0)
"Ancestral File Number match report\n\n"
"produced by afn_match.ll version 1.0\n"
"by Scott McGee (smcgee@microware.com)\n\n"
"Database: "
database()
"\nDate: "
long(gettoday())
"\n\n"
"AFN Key1 Key2 Name1\n"
"_________________________________________________________________________\n"
}
afn
col(10)
key(i1)
col(20)
key(i2)
col(30)
name(i1, 0)
"\n"
}