SobekCM MARC Library Version 1.1 Released

Version 1.1 of the SobekCM MARC Library (C#) has just been released. The SobekCM MARC Library is a C# library which contains classes for working in memory with MARC records ( ). This allows records to be read from MarcXML and Marc21 formats. Once in memory any field or subfield can be edited, added, or deleted. Then the record can be queried or saved again in either a MarcXML or Marc21 file format.
This version supports two major changes:

  1.  Z39.50 support has been added to allow you to pull a MARC record from a Z39.50 endpoint directly into the MARC record class structure. To use this funcionality, you need to copy the contents of directly into the bindebug or binrelease folder. Likewise, if you distribute an application which uses this library for Z39.50 support, the contents of that folder must be included in your executable folder. Currently, Z39.50 support does not work for 64-bit machines. I hope to fix this at a later time though.
  2. More support for character encoding included. The parser now correctly parses MARC8 character encoded records. It identifies the encoding from the record leader and will convert most the common combinatorial characters in MARC8 directly into Unicode. This required quite a bit of changes to accommodate reading the records or streams one BYTE at a time, rather than using any string operations. String operations in C# inherently use Unicode encoding, so this introduces a number of problems.

For more information on character encoding in the MARC records, see Mark Sullivan’s blog entry.  The complete code and an example application can be downloaded directly from SourceForge.