RegisterImport["format", defaultFunction]defaultFunction as the default function used when importing from a file of type "format".RegisterImport["format", {"$elem_1$" :> $conditionalFunction_1$, "$elem_2$" :> $conditionalFunction_2$, ..., defaultFunction}]RegisterImport["format", {"conditionalFunctions, defaultFunction, "$elem_3$" :> $postFunction_3$, "$elem_4$" :> $postFunction_4$, ...}]First, define the default function used to import the data.
ExampleFormat1Import[filename_String] := Module[{stream, head, data}, stream = OpenRead[filename]; head = ReadList[stream, String, 2]; data = Partition[ReadList[stream, Number], 2]; Close[stream]; {"Header" -> head, "Data" -> data}]
RegisterImport is then used to register the above function to a new data format.
ImportExport`RegisterImport["ExampleFormat1", ExampleFormat1Import]
FilePrint["ExampleData/ExampleData.txt"]
Import["ExampleData/ExampleData.txt", {"ExampleFormat1", "Elements"}]
Import["ExampleData/ExampleData.txt", {"ExampleFormat1", "Header"}]
Conditional Importer:
ExampleFormat2DefaultImport[filename_String] := Module[{stream, head}, stream = OpenRead[filename]; head = ReadList[stream, String, 2]; Close[stream]; {"Header" -> head}]
ExampleFormat2DataImport[filename_String] := Module[{stream, data}, stream = OpenRead[filename]; Skip[stream, String, 2]; data = Partition[ReadList[stream, Number], 2]; Close[stream]; {"Data" -> data}]
ImportExport`RegisterImport["ExampleFormat2", {"Data" :> ExampleFormat2DataImport, ExampleFormat2DefaultImport}]
Import["ExampleData/ExampleData.txt", {"ExampleFormat2", "Elements"}]
Import["ExampleData/ExampleData.txt", {"ExampleFormat2", "Header"}]
Import["ExampleData/ExampleData.txt", {"ExampleFormat2", "Data"}] // Grid