Sorting Address Book?

Is this possible?
I'd like to sort my addresses by name.
I see no option for sorting of any kind. Strange!
I'm also trying I'm trying to "Look for Duplicates" across selected groups in the Address Book. Possible?

If there is any way that the address book (and conversely mail.app) could be improved, it's more powerful sorting tools, and the ability to color-code entries.
Does anyone know of add-on software that will help achieve this kind of organization?
I am amazed how cool address book works when syncing to other computers and .mac, and especially the iPhone, but it could still be greatly improved.

Similar Messages

  • Sort address book (and show) company names

    Hi all,
    I would like to be able to do the following in Address book. Any help/suggestions would be most appreciated:
    1) Display a contacts First/Last name and the company they work for in the list of names
    2) Sort the list of contacts by company they work for
    The reason I want to do this is so that for our media list we can put in the individual PR contacts names, email address and blog, website etc they work for and then be able to quickly see this information without having to click on each one. It will also speed up dragging multiple contacts to one email.
    I realise that you can use groups to do this but it seems somewhat pointless to have one group per blog sometimes with only one contact in it and anyway why bother having the company info in the first place.
    It does seem somewhat strange that the list view cannot at least show some pertinent info about each contact without having to click on them...

    you should back up your whole system not just those two files. then you'll never miss anything. what's your backup setup?
    the address book data is stored in home directory/library/application support/address book and the ical data in home directory/library/calendars.

  • Sorting address book for latest updates of cards.

    I had to use my Powerbook for several months and I therefore added or updated cards on that version.   I want to transfer those changed cards to the iMac.  If I can sort chronologically by updated date on the lower right of card then I can transfer them.  Don't want to merge both address books.

    Hello Stephen,
    Make a new Smart Group, on the Alias/Smart Group you can Select All, the Export a vCard for that group...

  • Sorting address book groups

    Is there a way to sort the order of address book groups other than alphabetical?
    Thanks

    Is there a way to delete groups in contacts on the Iphone. I am deleting dup contacts manually but don't see anyway to delete unwanted and dup groups.

  • Sort Address Book search dialog box by last name, first name

    When I am entering an email, and I click on the To: field to bring up the Address Book dialog box, by default the names are ordered according to the
    Name field in First Name, Last name format.
    Is there any way to have this column display the names in Last Name, First Name format?

    Is there any way to have this column display the names in Last Name, First Name format?
    The only way would be to change the display order of the AB to use <FileAs> which in turn requires that the default order for the <FileAs> field is configured to be <Last, First>.
    Way to change the AB display order is by going into Account Settings (you don't mention which version of Outlook is in use) or with Outlook closed, use the Control Panel <Mail> app to open the profile
    - click on the <AddressBooks> tab
    - highlight Outlook AddressBook
    - click <Change> and select the appropriate <Show Names> option
    Note: if your current default FileAs setting is not configured to be <Last, First> - you will need to <bulk> change all existing contact items since any change to the FileAs default setting only applies to newly created contacts.
    Karl Timmermans [Outlook MVP] "Outlook Contact Import/Export/Data Mgmt" http://www.contactgenie.com

  • Imported Address Book not linking - when typing, results are red

    OS - Windows Vista
    Thunderbird Version 24.6.6
    Issue: Address book was imported into Mozilla from Windows Live Mail 2006. When trying to send an email, even though the contacts are listed in the address book, when typing them out in a new email, they are still flashing up in red.
    Troubleshooting performed: Composed new mail, typed out email manually - this added to address book. There were four copies of the address book listed, deleted the duplicates and migrated the addresses from the imported book to Personal Address Book. Still not working. Opened Address book and selected contact, attempted to compose mail to selected contact, failed. Checked Address Book entries - found that the entries didn't import properly into the following fields:
    First, Last, Email - rather they got imported as Display Name, Nickname (with nickname being the email address)
    Solution: Went into each contact, and modified them by moving the 'nickname' (which contained the email address) to the 'email address' field. Now able to send emails through to the contact.
    Questions:
    1) When importing the Address from Windows Live Mail - how can we stop it from importing/mapping the email address field into the nickname field?
    2) Is there a faster way to update all the contacts to copy across from Nickname field to the Email field?
    Thanks,
    Angela

    If you import via CSV fie, you should be shown a dialog that asks you to re-sort address book fields so the fields in the imported address book correspond with those in Thunderbird's Address Book.
    Did this not happen?
    See "From somewhere else to Thunderbird:" here:
    http://www.ramsden.org.uk/11_Thunderbird_Settings_and_the_Profile.html
    I don't know of any easy way to work directly with the address book file itself; it's not organized in a user-friendly manner internally. These matters are usually best addressed either before importing (i.e. tweak the CSV file in a spreadsheet program) or via the import dialog.
    Alternative formats such as vcf or vCard may avoid the need to massage the data, but IMHO are less suited to managing address books. If you can use these formats, this add-on can be useful:
    https://nic-nac-project.org/~kaosmos/morecols-en.html

  • TS3276 I have recently had a problem with one of my hotmail accounts, some sort of virus sending random emails to people in my address book. Hotmail advised me to change my password for that account, which I did. Why won't mail recognise the new password?

    I have recently had a problem with one of my hotmail accounts, some sort of virus sending random emails from my address book. Hotmail advised me to delete all contacts and change the password for that account, which I did on my laptop running windows XP. The change was successful and I was able to send and receive emails with no problem. I then had to change the account password on my iPhone 4s, which I did and it too was successful but when I came to change the password on my iMac, running the latest version of Lion it would not recognise the new password. I have tried to remove the account details and re-install but every time I go to add new account my old details are in the box. This is very frustrating as I use my iMac for all my profects and I need to access my email. Please help.

    hi guys,
    I had already deleted all reference to the hotmail account in question from the keychain access app, I have also tried to delete and re-instal the account details from within mail. The icon in the side bar dissapears but when I go to Add Account, the old account details are in the new account box. I then input my new password but am told that the server does not recognise it. If I access hotmail via google on the iMac I can get into my account with no problems. I am thinking there must be some other form of security system within the mac software that is blocking the new password. This is driving me nuts. I have been trying to resolve this for the last two days. Thank you for your advise anyway.

  • How can I get the address book to sort by "Last" name (using v 31.3.0).

    After a computer crash, I had to load Thunderbird (v31.3.0) back into my machine running Windows 8.1, and I successfully imported my address book back up file into Thunderbird (v31.3.0).
    My problem is that I don't see an option to sort the address book by "Last" name, which was available with the version of Thunderbird I had before the crash.
    How can I get the address book to sort by "Last" name?

    In 'Address Book'
    Select address book
    'View' > 'Show name as' > 'Last/First'
    The you can sort by Name.
    Either click on 'Name' column header to change sort order,
    If reversed, then click on 'Name' column header again to reverse the order.
    Or
    'View' > 'Sort By' > choose 'Name' and 'Ascending'

  • How to make Address Book obey Preferences? I run MacBook Pro 4.1 laptop,  Mac OS X 10.6.8  Address Book 5.0.3 (883) Preferences set at ... General First name following Last name   Sort for Last name Address Format Canada Font size Large Phone format set a

    How to make Address Book obey Preferences?
    I run MacBook Pro 4.1 laptop,  Mac OS X 10.6.8
    Address Book 5.0.3 (883) 
    Preferences set at ...
    General
    First name following Last name 
    Sort for Last name
    Address Format Canada
    Font size Large
    Phone format set at
    +1.123.456.7890
    When application quits - it's all forgotten and it self-resets to
    unwanted configuration.

    Whenever you remove system modifications, they must be removed completely, and the only way to do that is to use the uninstallation tool, if any, provided by the third-party developers, or to follow their instructions. If the software has been incompletely removed, you may have to re-download or even reinstall it in order to finish the job.
    Here are some general guidelines. Suppose you want to remove something called “BrickYourMac.” First, consult the product's Help menu, if there is one, for instructions. Finding none there, look on the developer's website, say www.brickyourmac.com. (That may not be the actual name of the site; if necessary, search the Web for the product name.) If you don’t find anything on the website or in your search, email the developer. While you're waiting for a response, download BrickYourMac.dmg and open it. There may be an application in there such as “Uninstall BrickYourMac.” If not, open “BrickYourMac.pkg” and look for an Uninstall button.
    If you can’t remove software in any other way, you’ll have to erase your boot volume and perform a clean reinstallation of OS X. Never install any third-party software unless you're sure you know how to uninstall it; otherwise you may create problems that are very hard to solve.
    Trying to remove complex system modifications by hunting for files by name often will not work and may make the problem worse. The same goes for "utilities" that purport to remove software.

  • Address book does not sort correctly

    I have not been able to get the address book to sort correctly. If I go Preferences/General/Sort by Last Name, it only sorts about half. I discovered that the ones that don't get sorted are ones that have had the "Swap first/last name" function applied to them. This appears to be only cosmetic. How do you make the first/last switch permanent?
    I thought that exporting them out and then importing would get around that but when exporting from Address Book it also ignores any first/last switches you may have done.
    Anyone know how to fix this? Thanks. -Derryl
      Mac OS X (10.4.5)  

    Bneely, thanks for the reply. It still doesn't solve the problem though. If what you are saying is the case then the switch should be an option in Mail, not the address book.
    Example: Our office in Switzerland sends us their addresses via Vcard. Most of Europe (like Japan) displays their cards reversed from ours. I get hundreds of addresses that don't sort correctly unless I manually retype them in their address cards. That is a waste of time (and certainly a waste of a G5). In addition to the temporary switch there needs to be a "Permanent Switch" button. Or at least a more intelligent sort function. Thanks. -dr
      Mac OS X (10.4.5)  

  • Snow Leopard Mail Address Book does no longer sort names

    Hi,
    I noticed that, after I installed Snow Leopard, the address book I access in Mail does no longer show entries sorted by last names although I set the the address book I access from the dock to do so and it works fine. I thought they're one and the same. How come there is this discrepancy and is there a way to resolve the issue?
    Best
    Frank

    Frank,
    The Address Book application opened from the Dock responds to its preference setting for this sort. Quit Mail, and then confirm the sort you want to see in the AB application -- you can choose not only Last Name sort, but whether Last Name appears before First Name, as I am sure you know.
    Now relaunch Mail, and when you access from Mail it should now have the same sort you selected in the AB app. Mail is apparently picking up the preference setting in the AB app at the time it launches, and does not change that until you have quit Mail, and then next relaunch it.
    Ernie

  • Apple Script to Sort through the Address Book

    Dear All,
    I am quite new to Apple and just a learner on Apple-scripts. Its been quite a task to learn.. I would require some help on a few things..
    The script will eventually use numbers to send email and get the user inputs and any yet to reach there..
    After going through lots of scripts to sort through the address book and make a clean address book, i found they are quite slow in processing takes about 20~30 Minutes to get through 2000 Contacts..
    Hence after reading posting of Mr. Koenig & Mr. Hiroto and specifically on deep copy. I have written the following code which does the following on 2000 records within 6~8Mins.
    The Script work its way through all the contact is the address List.. and creates Groups
    1. Duplicate Email Id's — List of Contacts with same email ID's including Contacts where the email Id is entered twice.. (Strange.. Address Book Issue, copy of the email Id under work & home)
    2. Duplicate Phone — List of Contacts with same Phone Numbers including Contacts where the Phone Nos is entered twice.
    3. Duplicate Name — List of Contacts with Same Names
    4. Duplicate No Name — List of Contacts without the First Name and Last Name
    it also sort the Contacts under the following Group which you can edit later with all the information's..
    1. Only Email Ids — List of Contacts with Email ID and No Phone Numbers
    2. Only Phone — List of Contacts with Phone Numbers and No Email Id's
    3. No Email or Phone — List of Contacts with No Email Id's and No Phone numbers (some half completed contacts )
    My Question to the forum is why is the following code still taking too much time..
    set onlyDupEList to every person of group theGroupEmail
    repeat with j from 1 to count of Dup_email
    set tempdata to item j of Dup_email
    if onlyDupEList does not contain {tempdata} then add tempdata to group theGroupEmail
    end repeat
    save application "Address Book"
    and the scripts slows down when the items in the list is quite large (over 800 or so )..
    Any help is appreciated and thanks in advance..
    -- the code ---
    global MsgTitle
    on run
    set MsgTitle to "Search for Duplicates in Address Book Contacts"
    display dialog ¬
    "This Script takes a while to finish" & return & "maybe 10 min or More..." & return & "Depending on the Address Book Contacts." & return & return & "Hence Allow it to run for the while" with title MsgTitle ¬
    with icon 1 ¬
    buttons {"Continue"} ¬
    giving up after 5
    set question to display dialog "Select the Duplicate Search Parameter " with icon 1 with title MsgTitle ¬
    buttons {"Contact Name", "Contacts on Phone & Email Id's", "Quit"} default button 3
    set rtnValue to button returned of question
    if rtnValue is "Quit" then
    -- tell application "Address Book" to quit
    tell me to quit
    end if
    if rtnValue is "Contact Name" then
    -- tell application "Address Book" to quit
    GetDup_byName("Duplicate Name")
    end if
    if rtnValue is "Contacts on Phone & Email Id's" then --Contacts on Phone & Email Id's
    -- tell application "Address Book" to quit
    Get_dup()
    end if
    end run
    --- Search on Name Field ---
    on GetDup_byName(theGroupName)
    set question to display dialog "Do you want to search for duplicates based on Names? " with icon 0 with title MsgTitle ¬
    buttons {"Continue", "Quit"} default button 1
    set rtnValue to button returned of question
    if rtnValue is "Quit" then
    -- tell application "Address Book" to quit
    tell me to quit
    end if
    tell application "Address Book"
    activate
    set biglist to {}
    set NoNameList to {}
    set theGroupNoName to "Duplicates No Names"
    set theGroup to theGroupName
    -- if not (exists (group "Dupilicate Entries")) then
    if not (exists (group theGroup)) then
    make new group with properties {name:theGroup}
    save
    end if
    if not (exists (group theGroupNoName)) then
    make new group with properties {name:theGroupNoName}
    save
    end if
    set the_names to name of people
    repeat with i from 1 to number of items in the_names
    set theName to item i of the_names
    -- return theName
    if theName is not in biglist then
    copy theName to end of biglist
    else
    set counter to (people whose name is theName)
    if (count of counter) > 1 then
    repeat with i from 1 to number of items in counter
    set this_item to item i of counter
    -- display dialog this_item
    add this_item to group theGroup
    end repeat
    -- return counter as string
    end if
    end if
    -- captures the Contacts without Name ---
    if theName contains "@" then
    -- display dialog theName
    set counterList to (people whose name is theName)
    repeat with i from 1 to number of items in counterList
    set this_item to item i of counterList
    -- display dialog this_item
    add this_item to group theGroupNoName
    end repeat
    end if
    -- save application "Address Book"
    end repeat
    save application "Address Book"
    set peopleCount to (count every person)
    -- set peopleCount to 50 -- only for testing --
    repeat with i from 1 to peopleCount
    set first_name to first name of person i as string
    set Last_Name to last name of person i as string
    if first_name is equal to "missing value" and Last_Name is equal to "missing value" then
    -- display dialog first_name & " : " & Last_Name
    set end of NoNameList to (id of person i)
    end if
    end repeat
    repeat with j from 1 to the count of NoNameList
    set tempdata to item j of NoNameList
    -- set testdata to person id tempdata
    -- if (name of groups of testdata does not contain theGroupNoEmail) then
    add tempdata to group theGroupNoName
    -- end if
    end repeat
    save application "Address Book"*)
    display dialog ¬
    "This Script Finished Processing Address Book Contacts the Duplicates are in the group" with title MsgTitle ¬
    with icon 1 ¬
    buttons {"Continue"} ¬
    giving up after 5
    end tell
    end GetDup_byName
    on Get_dup()
    set question to display dialog "Do you want to search for duplicates based on Names? " with icon 0 with title MsgTitle ¬
    buttons {"Continue", "Quit"} default button 1
    set rtnValue to button returned of question
    if rtnValue is "Quit" then
    -- tell application "Address Book" to quit
    tell me to quit
    end if
    tell application "Address Book"
    activate
    set theGroupEmail to "Duplicate Email Id's"
    set theGroupPhone to "Duplicate Phone"
    set theGroupNoEmail to "Only Phone Numbers"
    set thegroupNoPhone to "Only Email Id's"
    set theGroupNoData to "No Email or Phone"
    -- set theGroup to theGroupName
    if not (exists (group theGroupEmail)) then
    make new group with properties {name:theGroupEmail}
    save "Address Book"
    end if
    if not (exists (group theGroupPhone)) then
    make new group with properties {name:theGroupPhone}
    save "Address Book"
    end if
    if not (exists (group theGroupNoEmail)) then
    make new group with properties {name:theGroupNoEmail}
    save "Address Book"
    end if
    if not (exists (group thegroupNoPhone)) then
    make new group with properties {name:thegroupNoPhone}
    save "Address Book"
    end if
    if not (exists (group theGroupNoData)) then
    make new group with properties {name:theGroupNoData}
    save "Address Book"
    end if
    set ListofPeople to people --the_ID
    set ListofEmailID to value of emails of people --the_emails
    -- return ListofEmailID
    set ListofPhones to value of phone of people -- the_phones
    -- return ListofPhones
    set biglist to {}
    set ListEmail_Uniq to {}
    set ListEmail_Dup to {}
    set No_PhoneList to {}
    set No_EmailList to {}
    set No_dataList to {}
    set FlagEmail to false
    set FlagPhone to false
    -- repeat with i from 1 to number of items in the_emails
    repeat with i from 1 to count of ListofEmailID
    set thePersonID to item i of ListofPeople
    set theEmails to item i of ListofEmailID
    if theEmails is equal to {} then
    set end of No_EmailList to thePersonID
    else
    -- set FlagEmail to true
    repeat with j from 1 to count of theEmails
    set tmpdata to item j of theEmails
    -- return tmpdata
    if tmpdata is not in biglist then
    set end of biglist to tmpdata
    set end of ListEmail_Uniq to {tmpdata} & {thePersonID}
    else
    set end of ListEmail_Dup to {tmpdata} & {thePersonID}
    end if
    end repeat
    end if
    end repeat
    -- return ListEmail_Uniq
    -- return ListEmail_Dup
    -- save application "Address Book"
    set biglist to {}
    set ListPhone_Uniq to {}
    set ListPhone_Dup to {}
    -- repeat with i from 1 to number of items in the_emails
    repeat with i from 1 to count of ListofPhones
    set thePersonID to item i of ListofPeople
    set thePhones to item i of ListofPhones
    if thePhones is equal to {} then
    set end of No_PhoneList to thePersonID
    else
    -- set FlagPhone to true
    repeat with j from 1 to count of thePhones
    set tmpdata to item j of thePhones
    -- return tmpdata
    if tmpdata is not in biglist then
    set end of biglist to tmpdata
    set end of ListPhone_Uniq to {tmpdata} & {thePersonID}
    else
    set end of ListPhone_Dup to {tmpdata} & {thePersonID}
    end if
    end repeat
    end if
    end repeat
    -- return ListPhone_Uniq
    -- return ListPhone_Dup
    set the Dup_email to {}
    -- Find the Duplicates from the sorted list --
    repeat with i from 1 to the count of ListEmail_Dup
    set tempdata to item i of ListEmail_Dup
    set dataEmailDup to item 1 of tempdata
    set dataPersonDup to item 2 of tempdata
    repeat with j from 1 to the count of ListEmail_Uniq
    set tempdata to item j of ListEmail_Uniq
    set dataEmailUniq to item 1 of tempdata
    set dataPersonUniq to item 2 of tempdata
    -- display dialog mainEmail1 & "=" & mainEmail2 & " " & mainID1 & "=" & mainID2
    if dataEmailDup is equal to dataEmailUniq then
    set end of Dup_email to dataPersonDup -- & "," & dataPersonUniq
    set end of Dup_email to dataPersonUniq
    end if
    (* -- the code takes lot more time if add to group was used --
    if dataEmailDup is equal to dataEmailUniq then
    set testdata to person id dataPersonDup
    add testdata to group theGroup
    set testdata to person id dataPersonUniq
    add testdata to group theGroup
    end if
    end repeat
    end repeat
    -- return Dup_email
    set the Dup_Phone to {}
    -- Find the Duplicates from the sorted list --
    repeat with i from 1 to the count of ListPhone_Dup
    set tempdata to item i of ListPhone_Dup
    set dataPhoneDup to item 1 of tempdata
    set dataPersonDup to item 2 of tempdata
    repeat with j from 1 to the count of ListPhone_Uniq
    set tempdata to item j of ListPhone_Uniq
    set dataPhoneUniq to item 1 of tempdata
    set dataPersonUniq to item 2 of tempdata
    -- display dialog mainEmail1 & "=" & mainEmail2 & " " & mainID1 & "=" & mainID2
    if dataPhoneDup is equal to dataPhoneUniq then
    set end of Dup_Phone to dataPersonDup -- & "," & dataPersonUniq
    set end of Dup_Phone to dataPersonUniq
    end if
    (*if dataPhoneDup is equal to dataPhoneUniq then
    set testdata to person id dataPersonDup
    add testdata to group theGroup
    set testdata to person id dataPersonUniq
    add testdata to group theGroup
    -- save
    end if*)
    end repeat
    end repeat
    -- return Dup_Phone
    set onlyDupEList to every person of group theGroupEmail
    repeat with j from 1 to count of Dup_email
    set tempdata to item j of Dup_email
    if onlyDupEList does not contain {tempdata} then add tempdata to group theGroupEmail
    end repeat
    save application "Address Book"
    set onlyDupPList to every person of group theGroupPhone
    repeat with j from 1 to count of Dup_Phone
    set tempdata to item j of Dup_Phone
    if onlyDupPList does not contain {tempdata} then add tempdata to group theGroupPhone
    end repeat
    save application "Address Book"
    set onlyPhoneList to every person of group theGroupNoEmail
    repeat with j from 1 to the count of No_EmailList
    set tempdata1 to item j of No_EmailList
    if No_PhoneList does not contain {tempdata1} then
    if onlyPhoneList does not contain {tempdata1} then add tempdata1 to group theGroupNoEmail
    end if
    (*set flagE to false
    repeat with i from 1 to the count of No_PhoneList
    set tempdata2 to item i of No_PhoneList
    if tempdata1 is equal to tempdata2 then
    set flagE to true
    exit repeat
    end if
    end repeat
    if flagE is false then add tempdata1 to group theGroupNoEmail*)
    end repeat
    save application "Address Book"
    set onlyEmailList to every person of group thegroupNoPhone
    repeat with j from 1 to the count of No_PhoneList
    set tempdata1 to item j of No_PhoneList
    if No_EmailList does not contain {tempdata1} then
    if onlyEmailList does not contain {tempdata1} then add tempdata1 to group thegroupNoPhone
    end if
    end repeat
    save application "Address Book"
    set onlyList to every person of group theGroupNoData
    repeat with i from 1 to count of ListofPeople
    if (item i of ListofEmailID is equal to {}) and (item i of ListofPhones is equal to {}) then
    set tempdata to item i of ListofPeople
    if onlyList does not contain {tempdata} then add tempdata to group theGroupNoData
    end if
    end repeat
    save application "Address Book"
    display dialog ¬
    "This Script Finished Processing Address Book Contacts the Duplicates are in the group" with title MsgTitle ¬
    with icon 1 ¬
    buttons {"Continue"} ¬
    giving up after 5
    end tell
    end Get_dup
    on quit
    --set MsgTitle to "Change Email ID's Domain Name"
    save application "Address Book"
    display dialog "Contact Srikanth Kamath at [email protected] for any Help" with title MsgTitle with icon 1 buttons "OK"
    continue quit
    end quit

    Hello Srikanth Kamath,
    I'm not sure you're still following this thread, but anyway here's sample code I said I'd post later.
    --SCRIPT2
    main()
    on main()
    script o
    -- input data
    property xx : {1, 2, 3, 4, 5} -- list of parents
    property yy : {{"g", "h"}, {"a", "b"}, {"b", "e", "f"}, {"e"}, {"c", "d"}} -- list of children per parent
    -- work list
    property pp : {} -- list of children tagged by parent; i.e, lits of {child, parent}
    property qq : {}
    property rr : {}
    -- (1) build list of children tagged by parent
    repeat with i from 1 to count my xx
    set x to my xx's item i
    set y to my yy's item i
    repeat with p in y
    set end of my pp to {p's contents, x}
    end repeat
    end repeat
    --return pp -- {{"g", 1}, {"h", 1}, {"a", 2}, {"b", 2}, {"b", 3}, {"e", 3}, {"f", 3}, {"e", 4}, {"c", 5}, {"d", 5}}
    -- (2) sort tagged list by child as key
    msort(my by_key1, my pp)
    --return pp -- {{"a", 2}, {"b", 2}, {"b", 3}, {"c", 5}, {"d", 5}, {"e", 3}, {"e", 4}, {"f", 3}, {"g", 1}, {"h", 1}}
    -- (3) retrieve parents with duplicate child
    (* retrieve list of {child, parent} for duplicate child *)
    set my qq to uniq(my eq_key1, my pp, {_dup:true})
    --return qq -- {{"b", 2}, {"b", 3}, {"e", 3}, {"e", 4}}
    (* retrieve list of parent *)
    repeat with q in my qq
    set r to q's item 2
    if r is not in my rr then set end of my rr to r
    end repeat
    return rr -- {2, 3, 4}
    end script
    tell o to run
    end main
    on by_key1(x, y)
    msort's comparator for list of lists
    key = item 1, ascending
    returns true iff x and y are out of order
    return x's item 1 > y's item 1
    end by_key1
    on eq_key1(x, y)
    uniq's comparator for list of lists
    key = item 1
    returns true iff x and y are considered equal
    return x's item 1 = y's item 1
    end eq_key1
    on msort(cmp_, aa) -- v1.2f2
    Basic recursive merge sort handler having list sorted in place.
    handler cmp_ : comparator
    * cmp_(x, y) must return true iff list element x and y are out of order.
    list aa : list to be sorted in place
    script o
    property parent : {} -- limit closure to minimum
    property xx : aa -- to be sorted in place
    property xxl : count my xx
    property yy : {}
    property cmp : cmp_
    on merge(p, q, r)
    property xx: source list
    integer p, q, r : absolute indices to specify range to be merged such that
    xx's items p thru r is the target range,
    xx's items p thru (q-1) is the first sublist,
    xx's items q thru r is the second sublist.
    (p < q <= r)
    local i, j, k, xp, xr, yi, yj, ix, jx
    if r - p = 1 then
    set xp to my xx's item p
    set xr to my xx's item r
    if my cmp(xp, xr) then
    set my xx's item p to xr
    set my xx's item r to xp
    end if
    return -- exit
    else
    if p < q - 1 then merge(p, (p + q) div 2, q - 1)
    merge(q, (q + r + 1) div 2, r)
    end if
    At this point, sublits xx[p, q-1] and xx[q, r] have been already sorted (p < q <= r)
    if my cmp(my xx's item (q - 1), my xx's item q) then
    else -- xx[p, q-1] & xx[q, r] are already sorted
    return
    end if
    set yy to my xx's items p thru r -- working copy for comparison
    set ix to q - p
    set jx to r - p + 1
    set i to 1
    set j to q - p + 1
    set k to p
    set yi to my yy's item i
    set yj to my yy's item j
    repeat
    if my cmp(yi, yj) then
    set my xx's item k to yj
    set j to j + 1
    set k to k + 1
    if j > jx then
    set my xx's item k to yi
    set i to i + 1
    set k to k + 1
    repeat until k > r
    set my xx's item k to my yy's item i
    set i to i + 1
    set k to k + 1
    end repeat
    return
    end if
    set yj to my yy's item j
    else
    set my xx's item k to yi
    set i to i + 1
    set k to k + 1
    if i > ix then
    set my xx's item k to yj
    set j to j + 1
    set k to k + 1
    repeat until k > r
    set my xx's item k to my yy's item j
    set j to j + 1
    set k to k + 1
    end repeat
    return
    end if
    set yi to my yy's item i
    end if
    end repeat
    end merge
    on cmp(x, y)
    (* primary comparator *)
    return x > y
    end cmp
    local d, i, j
    if xxl ≤ 1 then return
    if cmp_ = {} then set my cmp to cmp -- comparator fallback
    my merge(1, (xxl + 1) div 2, xxl)
    end script
    tell o to run
    end msort
    on uniq(eq_, aa, {dup:dup}) -- v0.21
    handler eq_ : comparator eq_(x, y) that returns true iff x and y are considered equal
    list aa : pre-sorted list
    (precisely, a list organized such that any duplicate items are adjacent to each other)
    boolean _dup : option whether return unique items or duplicate items
    return duplicate if true, unique otherwise.
    script o
    property parent : {} -- limit closure to minimum
    property xx : aa
    property yy : {}
    property eq : eq_
    on eq(x, y)
    (* primitive comparator *)
    x = y
    end eq
    if eq_ = {} then set my eq to my eq -- comparator fallback
    local t, x, _on
    if (count my xx) < 2 then return my xx's contents
    if _dup then
    set _on to false
    set t to my xx's item 1
    repeat with i from 2 to count my xx
    set x to my xx's item i
    if eq(x, t) then
    set end of my yy to t
    set _on to true
    else if _on then
    set end of my yy to t
    set _on to false
    end if
    set t to x
    end repeat
    if _on then set end of my yy to x
    return my yy's contents -- return duplicate elements
    else
    set t to my xx's item 1
    set end of my yy to t
    repeat with i from 2 to count my xx
    set x to my xx's item i
    if eq(x, t) then
    else
    set end of my yy to x
    set t to x
    end if
    end repeat
    return my yy's contents -- return uinque elements
    end if
    end script
    tell o to run
    end uniq
    --END OF SCRIPT2
    In order to apply it to your current Address Book problem, replace the main() handler with something like the following one.
    --SCRIPT2a (part)
    on main()
    script o
    -- input data
    property xx : {} -- list of parent; given later
    property yy : {} -- list of children per parent; given later
    -- work list
    property pp : {} -- list of children tagged by parent; i.e, lits of {child, parent}
    property qq : {}
    property rr : {}
    -- (0) get input data from AB
    tell application "Address Book"
    tell people
    set xx to its id
    set yy to its every email's value
    end tell
    end tell
    -- (1) build list of children tagged by parent *)
    (* omitted (same as the previous) *)
    -- (2) sort tagged list by child as key
    (* omitted (same as the previous) *)
    -- (3) retrieve parents with duplicate child
    (* omitted (same as the previous) *)
    -- (4) group the retrieved people in AB
    tell application "Address Book"
    repeat with r in my rr
    add person id r to group "duplicate email"
    end repeat
    end tell
    end script
    tell o to run
    end main
    --END OF SCRIPT2a
    Good luck,
    Hiroto
    Message was edited by: Hiroto

  • Address Book Sorting

    Using BES, Curve 8330 on 4.5 and Outlook 2003 Exchange...
    Any time I enter an address in my Curve, it will sync perfectly with Exchange and sync with my outlook contacts.
    However, every time, it will sort by last name, first name.
    I've told the BB device to sort by first name, last name.  Outlook is setup the same way.  First then last.
    It gets irritating looking for a contact that I put in..only to realize it's stored in Outlook Last then first.
    It is stored in my phone correctly.
    If I create the contact in Outlook, by defaut it's first then last name....perfect.  It's only blackbery entered contacts that sync with Outlook.

    Double check in outlook
    tools- options- contact options
    Default "FILE AS" is set to first, last
    then go into your contacts and make sure they are STILL first last
    if not you will open each one that is not and change "FILE AS" to first last manually(the reason for this sometimes switching back is because of the switching in the previous step, which needs to be right to resolve your issue)
    on BB open address book- menu- options- general options
    make sure SORT BY: is set to FIRST NAME

  • Address Book sorting list print

    I noticed today a strange behaviour of the print function in Mac Os X Mountain Lion Address Book.
    I have to print the entire contacts list.
    I ckecked the "Sort by Last Name" in preferences, and on the video everithing is as expected.
    So I tried to print ad with my big surprise all the contacts are totally mixed!
    I can't find any sort rule! Just one contact after another!
    At the moment I thought that I made a mistake in some settings.
    I checked the entire print window and I havent found any option to set the sorting list preference.
    Maybe is very well hidden........
    Can anybody help?

    https://discussions.apple.com/message/19330865
    Hope this helps.

  • My address book in v. 32.0 will not sort properly e.g. by first, last, etc.; how can I correct this?

    My address book has 106 names. I have selected for an ascending-sort by display name. But it will not fully sort that way; instead, the names appear as batches, within each of which the sort is (mostly) correct. When I click on Name at the top, the sort toggles between ascending and descending, as expected, but the change occurs within each of the seeming batches rather than overall. Also, it seems that in 1 or more batch, the name displayed is not what I have chosen, e.g. first, last or display.
    In other words, displayed is one long list of names but it's really sets of names, that are treated as such. I want them all to be in one "set" and correctly sortable as such.

    I also have this problem sorting my address book which did not occur until I updated to Version 32.0. I will go back to version 31 but v32 needs to have someone look at the sort module and make corrections.

Maybe you are looking for