MonkeyMatch 0.5.56 - Find & Fix Similar Spelling (7/7/13)

Download and get help for different MediaMonkey for Windows 4 Addons.

Moderators: Peke, Gurus

Scottes
Posts: 150
Joined: Sat Mar 21, 2009 6:51 am

MonkeyMatch 0.5.56 - Find & Fix Similar Spelling (7/7/13)

Post by Scottes »

MonkeyMatch - Find And Fix Similar Spelling

MonkeyMatch will find and help you fix names with similar spellings. It will search the MediaMonkey database for the selected category - Artists & Album Artists, Albums or Song Titles - and do a fuzzy compare of each one to all other such names in the MediaMonkey database. When similar names are found they will be listed allowing you to quickly and easily choose the correct spelling. It will then modify all songs that had the incorrect spelling, setting the applicable field to the correct spelling you chose.

The accuracy of the fuzzy search is selectable, with 4 presets and 1 that can be fully customized. The search is highly optimized, but can still be slow with large databases, so filters can be set to limit which names that will be compared.

The correction process is designed to be very fast, requiring only 2 clicks to correct a name. A right-click menu allows you to edit a name, look up more info about the selected name, and more.

MonkeyMatch is written in C# as a separate application, not an addon.

Current Version: 0.5.56 - July 7, 2013
Download Here
Help File (PDF)

Getting Started Tutorial
The following is a quick and simple tutorial to get you started. It's quite simple, but there are a couple steps which aren't intuitive at all.

Finding Matches

Install MonkeyMatch, and start it. The main screen will appear.

For now, concentrate on the top left corner of the screen. The Filters and other buttons will be explained later in this document.
When started, MonkeyMatch will have Artists as the selected Category, and the Match Accuracy will be set to 5, Extremely Accurate. This is a good starting point for now, so click on the Find Matches button.
Image
MonkeyMatch will search the MediaMonkey database, getting all unique Artist and Album Artist names. (When Albums or Songs are selected, MonkeyMatch only gets the Album names or Song Titles, respectively.)

You will see the counters increasing for SubSet Names and then SuperSet Names (more on these later). Once it has both sets of names, MonkeyMatch will start comparing the two lists, doing a fuzzy search looking for similar names. Whenever it finds a pair of similar names it will increase the Match Pairs counter.

Matches Found
When it's done finding matches, it will load the first group of matches into the Match Group window, and the Next Match Group button will become enabled.
Image
From this screen you can see that my database has 2,987 unique Artist and Album Artist names. After comparing all of them, it found 63 pairs of names that were considered to be matches according to the current accuracy setting. The first pair of matches is displayed, leaving 62 pairs left.

Correcting Matches
The first pair of matches is displayed in the Match Group window in that large New Courier font. (The font can be changed if you prefer something else.)
According to their web site, Alice In Chains should have the "I" capitalized for the word "In", meaning the bottom name is the correct one. Click on the Preferred button to indicate this choice. The background of the selected name will turn green.

To correct the top spelling, simply double-click on the name. The name will be copied from the Preferred entry and the text will change to a bold red font, indicating that it has changed. The Save Changes button will become enabled, indicating that a change has been made and needs to be saved to the MediaMonkey database.
Image

Save Changes
Clicking the Save Changes button will update the MediaMonkey database. It will search for all songs that have the Artist or Album Artist set to the incorrect spelling and will change each of them to have the correct spelling. When the selected Category is Artists, MonkeyMatch will search both the Artist and Album Artist fields, but will correct each individually. If either field contains the incorrect spelling it will be replaced by the correct one.

Once the change is saved, the changed name will be removed from the list. If a single name remains in the list, then no more edits are possible so the next group of matches will be displayed.

Next Match Group
This button will clear the Match Group window, get the next group of matches and display them, and decrement the Matches Left counter. If there any changes that have not been saved, a warning box will pop up before the next group is displayed.

Right-Click Menu
Right-click on a name to list a few options.
Image
More Info will list all the songs associated with the selected name. More Info (All) - or F11 - will list the songs associated will all the names shown. Warning - these can take a few seconds if there are many songs to be shown.

Google Search will launch Google with the listed name as the search string.

Edit will pop up a box letting you free-edit that name.

Revert To Original will undo all changes made to the name.

Blacklist All Pairs - or F12 - will add all possible combinations of the listed names to a list of names that are known to be unique. These pairs will never again be considered to be a match. Note that each name may still match some other name, but the combination of the two names will never match again. For example, if you blacklist Rush and Bush, you will never see those two names paired together. But if you ever add a band called Mush then you will see Rush matching Mush, and Bush matching Mush.

Copy and Paste work with the Windows Clipboard, just like in any other program.

Tutorial Complete
That's it. OK, there's more that can be done, and there's a LOT more information about what's MonkeyMatch is actually doing. But that will get you started.


Change History
Beta 0.5.30 - June 11, 2013
Fixed a bug that causes an "Index Out Of Range" error
Beta 0.5.34 - June 15, 2013
Added Blacklisting Support
Added Function Keys:
--- F11 - More Info On All
--- F12 - Blacklist All Pairs
Added Composer to all Artist and AlbumArtist searches
Added Match Progress counter to show number of SubSet names checked
Small performance increase gained by only showing counters in hundreds
Beta 0.5.49 - June 30, 2013
Fixed a bug caused by a song without Artist, Album, and Song Title fields.
Beta 0.5.53 - July 4, 2013
Fixed a bug caused by extremely long names
Added a counter to show how many songs have been changed
Changed the way that changed songs are saved and updated by MediaMonkey
Added an option to stop matching once a certain number of Match Pairs have been found
Clicking Help in the Configure menu now works
When all Match Pairs have been processed, the Match Pair list disappears
Made some minor tweaks and stability improvements, and added some more debugging capabilities
Beta 0.5.56 - July 7, 2013
TREMENDOUS performance improvement - even more so if you use Blacklisting. Simply huge.
Changed "Revert To Original" to "Undo All Changes" because the latter is more standard
Last edited by Scottes on Tue Jul 09, 2013 4:57 pm, edited 14 times in total.
Lowlander
Posts: 56465
Joined: Sat Sep 06, 2003 5:53 pm
Location: MediaMonkey 5

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by Lowlander »

This sounds extremely promising, thank you for taking the time to develop.
zuilserip
Posts: 34
Joined: Wed Feb 22, 2012 8:00 pm

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by zuilserip »

This is great! I've been looking for a script like this for a while! I will try it out tonight when I get home. Thank you!

Two quick questions.

Is it possible to include 'composer' to the people match list? I.e., not just artist and album artists? I find that most of my inconsistencies occur on the composer field. And since many artists are also composers, it might make sense to compare them all.

Also, is there any ways to flag common equivalent expressions/names? So something like an editable file with common matches like (Robert, Bob, Rob), (2nd, Second), (and, &, 'n), (orchestra, orch.) or (Benjamin, Ben, Benny), etc. This would make the script very powerful in identifying matches accurately...
Scottes
Posts: 150
Joined: Sat Mar 21, 2009 6:51 am

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by Scottes »

Concerning composers... Yes, it is possible. However, it won't be easy from what I learned with the way I mashed Artist & AlbumArtist together. If I were going to add Composer then I'd probably want to clean up some of that ugly code and make it more manageable.


Concerning Equivalent expressions/names... Interesting concept. I'm going to let my brain spin on this one for a while and see how it would fit it in.
hintergrundrauschen
Posts: 211
Joined: Sat Mar 29, 2008 6:20 pm

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by hintergrundrauschen »

Starting up MonkeyMatch, I will get the following error message (Win7, German, MM 4.1):

"row index out of range"

Code: Select all

Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.ArgumentOutOfRangeException: Der angegebene Zeilenindex liegt außerhalb des definierten Bereichs.
Parametername: rowIndex
   bei System.Windows.Forms.DataGridViewRowCollection.GetRowState(Int32 rowIndex)
   bei System.Windows.Forms.DataGridView.OnRowGlobalAutoSize(Int32 rowIndex)
   bei System.Windows.Forms.DataGridView.OnRowHeightChanged(DataGridViewRowEventArgs e)
   bei System.Windows.Forms.DataGridView.OnBandThicknessChanged(DataGridViewBand dataGridViewBand)
   bei System.Windows.Forms.DataGridViewBand.set_ThicknessInternal(Int32 value)
   bei System.Windows.Forms.DataGridView.OnRemovedRow_PostNotification(DataGridViewRow dataGridViewRow, Point newCurrentCell)
   bei System.Windows.Forms.DataGridViewRowCollection.OnCollectionChanged_PostNotification(CollectionChangeAction cca, Int32 rowIndex, Int32 rowCount, DataGridViewRow dataGridViewRow, Boolean changeIsDeletion, Boolean changeIsInsertion, Boolean recreateNewRow, Point newCurrentCell)
   bei System.Windows.Forms.DataGridViewRowCollection.OnCollectionChanged(CollectionChangeEventArgs e, Int32 rowIndex, Int32 rowCount, Boolean changeIsDeletion, Boolean changeIsInsertion, Boolean recreateNewRow, Point newCurrentCell)
   bei System.Windows.Forms.DataGridViewRowCollection.RemoveAtInternal(Int32 index, Boolean force)
   bei System.Windows.Forms.DataGridView.PushAllowUserToAddRows()
   bei System.Windows.Forms.DataGridView.OnAllowUserToAddRowsChanged(EventArgs e)
   bei System.Windows.Forms.DataGridView.set_AllowUserToAddRows(Boolean value)
   bei MonkeyMatch.Form1.SetDgvMatchGroupToNames()
   bei MonkeyMatch.Form1.Form1_Load(Object sender, EventArgs e)
   bei System.Windows.Forms.Form.OnLoad(EventArgs e)
   bei System.Windows.Forms.Form.OnCreateControl()
   bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   bei System.Windows.Forms.Control.CreateControl()
   bei System.Windows.Forms.Control.WmShowWindow(Message& m)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   bei System.Windows.Forms.Form.WmShowWindow(Message& m)
   bei System.Windows.Forms.Form.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.586 (RTMLDR.030319-5800).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
----------------------------------------
MonkeyMatch
    Assembly-Version: 0.5.4896.33633.
    Win32-Version: 0.5.4896.33633.
    CodeBase: file:///C:/Users/Claudius/AppData/Local/Apps/2.0/DZHL9LN7.WQ2/E6PHDC8M.A2Y/monk..tion_1f8636ce9401f4ba_0000.0005_19fd6f23c430bc8e/MonkeyMatch.exe.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.2003 built by: RTMLDR.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.2001 built by: RTMLDR.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.2001 built by: RTMLDR.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Data
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.468 (RTMLDR.030319-4600).
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll.
----------------------------------------
System.Core
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.450 built by: RTMLDR.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
----------------------------------------
System.Xml
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.450 built by: RTMLDR.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
System.Configuration
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Numerics
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.454 (RTMLDR.030319-4500).
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.
However, I can choose to run the application. Everything seems fine, but running the search will pop up "The are no matchhing names.".

Where is the program installed (the directory it is being installed from?)? I can't seem to choose a location.

How will it find the correct database location?
Claude
Scottes
Posts: 150
Joined: Sat Mar 21, 2009 6:51 am

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by Scottes »

Does this happen as soon as you start it up? Or after you click "Find Matches"?

MS C# installer program puts the program somewhere under your C:\users directory.

The program finds the MediaMonkey database using a COM object. MonkeyMatch just connects to the COM object, which knows how to access the database.

Can you see if there are any logs under C:\Users\<username>\AppData\Roaming\MonkeyMatch directory? (That's Win7, it might be slightly different on a different version of Windows.)
hintergrundrauschen
Posts: 211
Joined: Sat Mar 29, 2008 6:20 pm

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by hintergrundrauschen »

It happens as soon as I launch MonkeyMatch, i.e. before the window is loaded/shown.

Find Matches will run for about 1-3 sec. before telling me about no matches.

Actions.log says:

Code: Select all

Jun 02 22:15:22 Starting Up
Jun 02 22:16:04 Finding Matches
Jun 02 22:16:04 Setting AutoSaveChanges: False
Jun 02 22:16:04 Setting CustomLenDiffLong: 10
Jun 02 22:16:04 Setting CustomLenDiffShort: 5
Jun 02 22:16:04 Setting CustomScoreLong: 65
Jun 02 22:16:04 Setting CustomScoreShort: 50
Jun 02 22:16:04 Setting CustomThresholdLong: 15
Jun 02 22:16:04 Setting CustomThresholdShort: 10
Jun 02 22:16:04 Setting DataSetReady: False
Jun 02 22:16:04 Setting IgnoreNumericDifference: True
Jun 02 22:16:04 Setting LenLongMin: 35
Jun 02 22:16:04 Setting LenShortMax: 7
Jun 02 22:16:04 Setting LogActions: True
Jun 02 22:16:04 Setting LogChanges: True
Jun 02 22:16:04 Setting LogDirectory: C:\Users\Claude\AppData\Roaming\MonkeyMatch
Jun 02 22:16:04 Setting LogMatches: True
Jun 02 22:16:04 Setting LogSubSetNames: True
Jun 02 22:16:04 Setting LogSuperSetNames: True
Jun 02 22:16:04 Setting MatchListFont: Courier New, 12pt
Jun 02 22:16:04 Setting PreferredRow: -2
Jun 02 22:16:04 Setting ShowStartupWarning: True
Jun 02 22:16:04 Setting SubSetAllLengths: True
Jun 02 22:16:04 Setting SubSetLongOnly: False
Jun 02 22:16:04 Setting SubSetMediumOnly: False
Jun 02 22:16:04 Setting SubSetShortOnly: False
Jun 02 22:16:04 Selected Table: Artists
Jun 02 22:16:04 Selected Length: All
Jun 02 22:16:04 Selected Accuracy: 5
Jun 02 22:16:04 Getting SubSet Names
Jun 02 22:16:04 Getting DataSet with Query: SELECT SongTitle, Artist, AlbumArtist FROM Songs ORDER BY Artist
Jun 02 22:16:08 Getting DataSet Completed
Jun 02 22:16:08 Logging SubSet Names
Jun 02 22:16:08 Logging SubSet Names completed
Jun 02 22:16:08 Found 1 names for SubSet
Jun 02 22:16:08 Getting SuperSet Names
Jun 02 22:16:08 Both Filters are identical - copying SubSet to SuperSet
Jun 02 22:16:08 Found 1 names for SuperSet
Jun 02 22:16:08 Getting Matches
Jun 02 22:16:08 Logging Matches
Jun 02 22:16:08 Logging Matches completed
Jun 02 22:16:08 Getting Matches completed with 0 records matched
Jun 02 22:16:13 Exiting Application
Just to clarify: as I said I run MM 4.1, hope that's ok
Claude
Scottes
Posts: 150
Joined: Sat Mar 21, 2009 6:51 am

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by Scottes »

I would not think that MM 4.1 would matter because I am only using two MM function calls in this, OpenSQL() and QuerySongs(). AFAIK those have been stable for a while. I'm going to install 4.1 and poke at it a bit and see if I can figure something out.

My worry is that it is a localization thing. The last piece of shareware I wrote caused a problem for a German user, but that one was easy to solve since it involved the use of commas and periods in numbers and was readily apparent.

I'm going to install MM 4.1 and see if that gives me any issues with my program. If not, would you be willing to send me your MM database file? Though I'm not sure if that will even help since I'm on an American Windows.

EDIT: Well, it's not caused by MM 4.1. MonkeyMatch handles the database without issue on my system. It must be the localization, German vs. American.
Scottes
Posts: 150
Joined: Sat Mar 21, 2009 6:51 am

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by Scottes »

I've been doing some research, and I'm beginning to think that this is caused by one of the names in your database. For some reason the query is returning only one name - from the actions.log you posted:
Jun 02 22:16:08 Found 1 names for SubSet

I would think that you have more than 1 unique artist name in your database, so I think there may be a problem caused by a special character - special to an American language program, like umlauts and Ä, Ö, Ü, ä, ö, ü. My database has numerous "special characters", but certainly not all of them.

I would love to get your database so I can debug this.
Scottes
Posts: 150
Joined: Sat Mar 21, 2009 6:51 am

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by Scottes »

hintergrundrauschen wrote:Starting up MonkeyMatch, I will get the following error message (Win7, German, MM 4.1):

"row index out of range"
I just fixed a bug that caused the same error. I'm not positive that it's the same one as you experienced, but it seems likely from what I just changed.

Please try the new version (0.5.30) if you could:
Download Here
trixmoto
Posts: 10024
Joined: Fri Aug 26, 2005 3:28 am
Location: Hull, UK
Contact:

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by trixmoto »

I've not had a chance to play with this yet, but I'm very excited about it. I've had this idea on my list for a long time, but not found the time to implement it!

Out of curiosity, what fuzzy matching algorithm(s) do you use?
Download my scripts at my own MediaMonkey fansite.
All the code for my website and scripts is safely backed up immediately and for free using Dropbox.
Scottes
Posts: 150
Joined: Sat Mar 21, 2009 6:51 am

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by Scottes »

trixmoto wrote:Out of curiosity, what fuzzy matching algorithm(s) do you use?
It uses the Damerau-Levenshtein algorithm, which allows for an early exit if the distance exceeds a configure threshold. I changed the base distance to a normalized score based on the string lengths. I have a few other optimizations around it, so it doesn't execute unless the two strings are within tolerances.

I did this once before in Python, using the basic Levenshtein algorithm and barely any optimizations around it. Running against my database took 522 seconds. Using C#, and Damerau-Levenshtein with the optimizations, running against the same database took 77 seconds - and produced much better results.
Scottes
Posts: 150
Joined: Sat Mar 21, 2009 6:51 am

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by Scottes »

New Version - 0.5.34 - June 15, 2013

Added Blacklisting Support
Added Function Keys:
--- F11 - More Info On All
--- F12 - Blacklist All Pairs
Added Composer to all Artist and AlbumArtist searches


NEW - Blacklist All Pairs (F12)
The fuzzy matching algorithm will often match a pair of names that are actually unique, such as two Albums with similar names such as "Greatest Hits I" and "Greatest Hits II". When presented with a list of names that you know are unique you can choose to Blacklist them, which will ensure that these names will never again be presented as a match.

Note that this option will Blacklist all possible combinations of the names shown in the Match Group window, so be sure that ALL names are unique before executing this function.

Pressing the F12 key is another way to execute this functionality.

More Info On All (F11)
This will pop up a new window containing all the songs related to all the entries in the current Match Group.

NEW: Pressing the F11 key is another way to execute this functionality.

Added Composer to all Artist and AlbumArtist searches
When the selected category is Artists, MonkeyMatch will also search for and correct Album Artists and Composers since these three will often be the same for each song. When corrections are done, Artists, Album Artists and Composers are processed separately. Each field will be checked individually, and each field will be changed only when it matches the incorrect spelling as you specified.

NEW - The Composer will now be searched and matched along with the Artists and AlbumArtists.

Added Match Progress counter
NEW: Added Match Progress counter to show number of SubSet names checked
NEW: Small performance increase gained by only showing counters in hundreds
hintergrundrauschen
Posts: 211
Joined: Sat Mar 29, 2008 6:20 pm

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by hintergrundrauschen »

Scottes wrote:I've been doing some research, and I'm beginning to think that this is caused by one of the names in your database.
Sorry for the late reply. I installed the new version and get 1) the same error when I startup the program (row index error), as before, and after pressing "Find Matches" I get another one:

Code: Select all

Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
   bei MonkeyMatch.Form1.GetMatches(List`1 SubSet, List`1 SuperSet)
   bei MonkeyMatch.Form1.btnFindMatches_Click(Object sender, EventArgs e)
   bei System.Windows.Forms.Control.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnClick(EventArgs e)
   bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
   bei System.Windows.Forms.Button.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.586 (RTMLDR.030319-5800).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
----------------------------------------
MonkeyMatch
    Assembly-Version: 0.5.4914.36866.
    Win32-Version: 0.5.4914.36866.
    CodeBase: file:///C:/Users/Claude/AppData/Local/Apps/2.0/DZHL9LN7.WQ2/E6PHDC8M.A2Y/monk..tion_1f8636ce9401f4ba_0000.0005_8bb1da4edc4b8e3a/MonkeyMatch.exe.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.2003 built by: RTMLDR.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.2001 built by: RTMLDR.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.2001 built by: RTMLDR.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Data
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.468 (RTMLDR.030319-4600).
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll.
----------------------------------------
System.Core
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.450 built by: RTMLDR.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
----------------------------------------
System.Xml
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.450 built by: RTMLDR.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
System.Configuration
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Numerics
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.454 (RTMLDR.030319-4500).
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
----------------------------------------
Microsoft.CSharp
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll.
----------------------------------------
System.Dynamic
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll.
----------------------------------------
Anonymously Hosted DynamicMethods Assembly
    Assembly-Version: 0.0.0.0.
    Win32-Version: 4.0.30319.586 (RTMLDR.030319-5800).
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll.
----------------------------------------
System.Dynamic.DynamicAssembly
    Assembly-Version: 0.0.0.0.
    Win32-Version: 4.0.30319.1.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll.
----------------------------------------

************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

Zum Beispiel:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.
I do have some unusual characters in my database, e.g. Arabian and Chinese. Those are leftovers from some Musicbrainz tagging of foreign/world music artists.

My database is quite large, if you're interested...
Claude
Scottes
Posts: 150
Joined: Sat Mar 21, 2009 6:51 am

Re: MonkeyMatch Beta 0.5.16 - Find And Fix Similar Spelling

Post by Scottes »

hintergrundrauschen wrote:My database is quite large, if you're interested...
Yes, I'm definitely interested. I'd like to get this issue you have fixed. And I think it would be good for me to see another database - especially one with unusual characters.
Post Reply