static void Main(string[] args) { if (args.Length != 3) { Console.WriteLine("Usage: ExtractLinkedIndex.exe <TSR OPERA persistence path> <sheet id> <output ASCII file>"); Console.WriteLine("or: ExtractLinkedIndex.exe <TSR OPERA persistence path> <sheet id> <output TLG file>"); return; } SySal.TotalScan.Volume v = (SySal.TotalScan.Volume)SySal.OperaPersistence.Restore(args[0], typeof(SySal.TotalScan.Volume)); int i, n; n = Convert.ToInt32(args[1]); SySal.TotalScan.Layer layer = null; for (i = 0; i < v.Layers.Length; i++) { layer = v.Layers[i]; if (layer.SheetId == n) { break; } } n = layer.Length; Console.WriteLine("Found layer " + layer.Id + " SheetId " + layer.SheetId); Console.WriteLine(n + " tracks found"); int selected = 0; if (args[2].ToLower().EndsWith(".tlg")) { System.Collections.ArrayList ar = new System.Collections.ArrayList(); for (i = 0; i < n; i++) { SySal.TotalScan.Segment s = layer[i]; if (s.TrackOwner != null && s.TrackOwner.Length > 1) { ar.Add(i); selected++; } } SySal.Scanning.Plate.IO.OPERA.LinkedZone.BaseTrackIgnoreAlignment ai = new SySal.Scanning.Plate.IO.OPERA.LinkedZone.BaseTrackIgnoreAlignment(); ai.Ids = (int[])ar.ToArray(typeof(int)); SySal.OperaPersistence.Persist(args[2], ai); } else { System.IO.StreamWriter w = new System.IO.StreamWriter(args[2], false); w.WriteLine("Index"); for (i = 0; i < n; i++) { SySal.TotalScan.Segment s = layer[i]; if (s.TrackOwner != null && s.TrackOwner.Length > 1) { w.WriteLine(i); selected++; } } w.Flush(); w.Close(); } Console.WriteLine(selected + " tracks selected"); }
static void Main(string[] args) { // // TODO: Add code to start application here // #if (!(DEBUG)) try { #endif if (args.Length != 2) { Console.WriteLine("usage: OperaCopy <source> <dest>"); Console.WriteLine("supported types: TLG, TSR, RWC, RWD, XML"); Console.WriteLine("TLG -------- input"); Console.WriteLine(SySal.OperaPersistence.Help(typeof(SySal.Scanning.Plate.IO.OPERA.LinkedZone), true, true)); Console.WriteLine("TLB = TLG, full base track info; TLS = TLG, geometrical base track info only."); Console.WriteLine("TLG -------- output"); Console.WriteLine(SySal.OperaPersistence.Help(typeof(SySal.Scanning.Plate.IO.OPERA.LinkedZone), false, true)); Console.WriteLine("AI -------- output"); Console.WriteLine("Alignment Ignore sections of TLG files translated to text files"); Console.WriteLine("BI -------- output"); Console.WriteLine("BaseTrack Index sections of TLG files translated to text files"); Console.WriteLine("DBMI -------- output"); Console.WriteLine("DB MicroTrack Index sections of TLG files translated to text files"); Console.WriteLine("TSR -------- input"); Console.WriteLine(SySal.OperaPersistence.Help(typeof(SySal.TotalScan.Volume), true, true)); Console.WriteLine("TSR -------- output"); Console.WriteLine(SySal.OperaPersistence.Help(typeof(SySal.TotalScan.Volume), false, true)); Console.WriteLine("RWC -------- input"); Console.WriteLine(SySal.OperaPersistence.Help(typeof(SySal.Scanning.Plate.IO.OPERA.RawData.Catalog), true, true)); Console.WriteLine("RWC -------- output"); Console.WriteLine(SySal.OperaPersistence.Help(typeof(SySal.Scanning.Plate.IO.OPERA.RawData.Catalog), false, true)); Console.WriteLine("RWD -------- input"); Console.WriteLine(SySal.OperaPersistence.Help(typeof(SySal.Scanning.Plate.IO.OPERA.RawData.Fragment), true, true)); Console.WriteLine("RWD -------- output"); Console.WriteLine(SySal.OperaPersistence.Help(typeof(SySal.Scanning.Plate.IO.OPERA.RawData.Fragment), false, true)); Console.WriteLine("XML -------- input"); Console.WriteLine(SySal.OperaPersistence.Help(typeof(SySal.OperaDb.ComputingInfrastructure.ProgramSettings), true, true)); Console.WriteLine("XML -------- output"); Console.WriteLine(SySal.OperaPersistence.Help(typeof(SySal.OperaDb.ComputingInfrastructure.ProgramSettings), false, true)); return; } PersistenceType T = GetType(args[0]); PersistenceType Q = GetType(args[1]); if (T != Q && !(Q == PersistenceType.TLG && (T == PersistenceType.TLB || T == PersistenceType.TLS))) { throw new Exception("Input and output persistence supports must be of the same type."); } switch (T) { case PersistenceType.TLG: if (args[1].ToLower().EndsWith(".bi")) { SySal.Scanning.Plate.IO.OPERA.LinkedZone.BaseTrackIndex bi = (SySal.Scanning.Plate.IO.OPERA.LinkedZone.BaseTrackIndex)SySal.OperaPersistence.Restore(args[0], typeof(SySal.Scanning.Plate.IO.OPERA.LinkedZone.BaseTrackIndex)); System.IO.StreamWriter wr = new System.IO.StreamWriter(args[1]); wr.Write("Index"); foreach (int ix in bi.Ids) { wr.WriteLine(); wr.Write(ix); } wr.Flush(); wr.Close(); } else if (args[1].ToLower().EndsWith(".ai")) { SySal.Scanning.Plate.IO.OPERA.LinkedZone.BaseTrackIgnoreAlignment ai = (SySal.Scanning.Plate.IO.OPERA.LinkedZone.BaseTrackIgnoreAlignment)SySal.OperaPersistence.Restore(args[0], typeof(SySal.Scanning.Plate.IO.OPERA.LinkedZone.BaseTrackIgnoreAlignment)); System.IO.StreamWriter wr = new System.IO.StreamWriter(args[1]); wr.Write("Index"); foreach (int ix in ai.Ids) { wr.WriteLine(); wr.Write(ix); } wr.Flush(); wr.Close(); } else if (args[1].ToLower().EndsWith(".dbmi")) { SySal.OperaDb.Scanning.DBMIPMicroTrackIndex dbmi = (SySal.OperaDb.Scanning.DBMIPMicroTrackIndex)SySal.OperaPersistence.Restore(args[0], typeof(SySal.OperaDb.Scanning.DBMIPMicroTrackIndex)); System.IO.StreamWriter wr = new System.IO.StreamWriter(args[1]); wr.Write("IdZone\tSide\tId"); foreach (SySal.OperaDb.TotalScan.DBMIPMicroTrackIndex tx in dbmi.TopTracksIndex) { wr.WriteLine(); wr.Write(tx.ZoneId + "\t" + tx.Side + "\t" + tx.Id); } foreach (SySal.OperaDb.TotalScan.DBMIPMicroTrackIndex tx in dbmi.BottomTracksIndex) { wr.WriteLine(); wr.Write(tx.ZoneId + "\t" + tx.Side + "\t" + tx.Id); } wr.Flush(); wr.Close(); } else { SySal.OperaPersistence.LinkedZoneDetailLevel = SySal.OperaDb.Scanning.LinkedZone.DetailLevel.Full; Console.WriteLine(SySal.OperaPersistence.Persist(args[1], (SySal.Scanning.Plate.IO.OPERA.LinkedZone)SySal.OperaPersistence.Restore(args[0], typeof(SySal.Scanning.Plate.IO.OPERA.LinkedZone)))); } break; case PersistenceType.TLB: SySal.OperaPersistence.LinkedZoneDetailLevel = SySal.OperaDb.Scanning.LinkedZone.DetailLevel.BaseFull; Console.WriteLine(SySal.OperaPersistence.Persist(args[1], (SySal.Scanning.Plate.IO.OPERA.LinkedZone)SySal.OperaPersistence.Restore((args[0].Substring(0, args[0].Length - 1) + 'G'), typeof(SySal.Scanning.Plate.IO.OPERA.LinkedZone)))); break; case PersistenceType.TLS: SySal.OperaPersistence.LinkedZoneDetailLevel = SySal.OperaDb.Scanning.LinkedZone.DetailLevel.BaseGeom; Console.WriteLine(SySal.OperaPersistence.Persist(args[1], (SySal.Scanning.Plate.IO.OPERA.LinkedZone)SySal.OperaPersistence.Restore((args[0].Substring(0, args[0].Length - 1) + 'G'), typeof(SySal.Scanning.Plate.IO.OPERA.LinkedZone)))); break; case PersistenceType.TSR: Console.WriteLine(SySal.OperaPersistence.Persist(args[1], (SySal.TotalScan.Volume)SySal.OperaPersistence.Restore(args[0], typeof(SySal.TotalScan.Volume)))); break; case PersistenceType.RWC: Console.WriteLine(SySal.OperaPersistence.Persist(args[1], (SySal.Scanning.Plate.IO.OPERA.RawData.Catalog)SySal.OperaPersistence.Restore(args[0], typeof(SySal.Scanning.Plate.IO.OPERA.RawData.Catalog)))); break; case PersistenceType.RWD: Console.WriteLine(SySal.OperaPersistence.Persist(args[1], (SySal.Scanning.Plate.IO.OPERA.RawData.Fragment)SySal.OperaPersistence.Restore(args[0], typeof(SySal.Scanning.Plate.IO.OPERA.RawData.Fragment)))); break; case PersistenceType.XML: Console.WriteLine(SySal.OperaPersistence.Persist(args[1], (SySal.OperaDb.ComputingInfrastructure.ProgramSettings)SySal.OperaPersistence.Restore(args[0], typeof(SySal.OperaDb.ComputingInfrastructure.ProgramSettings)))); break; } #if (!(DEBUG)) } catch (Exception x) { Console.Error.WriteLine(x); } #endif }