I and am sure others have the need to be able to sync Netscape address book with KPilot. I found the beginings of a perl script on the net. I have modified the script a little but this is far beyond my current knowledge of programming. I was hoping someone might enjoy tackling this or have suggestions on an alternative method. #!/usr/sbin/perl ############################################### ## Version 11.20.97 ## ############################################### ## address_convert.cgi ## ############################################### ## Converts Netscape .ldif to .addressbook ## ## (c)1997 Daevid Vincent ## ## EMAIL: dvincent@TheMatrix.com ## ## WEB: http://TheMatrix.com/~dae51d ## ## Unauthorized use of this code is strictly ## ## prohibited and subject to criminal ## ## prosecution and or death ## ############################################### #EN 07/26/1999 Modified by Eric Nichols for exporting in a comma separated format readable by KPilot enichols@uswest.net if ($#ARGV < 0) {print "\n\tUsage: $0 netscape.ldif.file > kpilot.csv\n\n"; exit;} open(NetscapeFILE,"<$ARGV[0]") || die("Can't open file $_[0]: $!"); $x = $l = 0; while () { chomp; #EN 07/26/1999 I removed chop because it was striping givenname and sn of their last charachter # chop; # remove the newlines and ^M character, etc. if (/^dn: cn=(.*),mail=(.*)/i) { $x++; $NAME[$x] = $1; $EMAIL[$x] = $2;} if (/^mail: (.*)/i) { $P5[$x] = $1;} if (/^givenname: (.*)/i) { $FN[$x] = $1} if (/^sn: (.*)/i) { $LN[$x] = $1;} if (/^homephone: (.*)/i) { $P1[$x] = $1} if (/^o: (.*)/i) { $CO[$x] = $1;} if (/^locality: (.*)/i) { $CI[$x] = $1;} if (/^st: (.*)/i) { $ST[$x] = $1;} if (/^description: (.*)/i) { $C3[$x] = $1;} if (/^title: (.*)/i) { $TI[$x] = $1;} if (/^streetaddress: (.*)/i) { $AD[$x] = $1;} if (/^postalcode: (.*)/i) { $ZI[$x] = $1;} if (/^countryname: (.*)/i) { $CT[$x] = $1;} if (/^telephonenumber: (.*)/i) { $P2[$x] = $1;} if (/^facsimiletelephonenumber: (.*)/i) { $P3[$x] = $1;} if (/^cellphone: (.*)/i) { $P4[$x] = $1} if (/^ou: (.*)/i) { $C1[$x] = $1;} if (/^pagerphone: (.*)/i) { $C4[$x] = $1} if (/^homeurl: (.*)/i) { $C2[$x] = $1;} # special LIST handling # if (/^dn: cn=(.*)[^,=]/i) # { $LISTNAME[$l] = $1; # $lm = 0; # start a new tally of members # while (/^\S/) { # if (/member: cn=(.*),mail=(.*)/) { $LISTMEMBER[$lm] = $2; $lm++; } # if (/^description: (.*)/i) { $LISTDESC[$l] = $1; } # if (/^xmozillanickname: (.*)/i) { $LISTNICK[$l] = $1; } # } # while list # $l++; # } # if list } # main while loop close(NetscapeFILE); $x = 0; while ($x <= $#NAME) { print "$LN[$x]\,$FN[$x]\,$CO[$x]\,$P1[$x]$P2[$x]\,$P3[$x]\,$P4[$x]\,$P5[$x]\,AD[$x]\,$CI[$x]\,$ST[$x]\,$ZI[$x]$CT[$x]\,$TI[$x]\,$C1[$x]\,$C2[$x]\,C3[$x]\,$C4[$x]\n"; $x++; } -- Eric Nichols Corvallis, Oregon 97330 CounselTech 819 NW 31st Street (541) 990-7996 http://www.alephent.com/counseltech/