public void ProcessFrx() { try { while (readerIndex < FrxFile.Length) { MoveIndexNextStartStylesImage(); TrueDBGrid grid = new TrueDBGrid(); totalImageBatches++; grid.Images = ProcessImagesBatch(); grid.AllStyles = ProcessStylesBatch(); ProcessStyleAssignmentsBatch(grid); ReadNamedStyleInfoBatch(grid); if (grid.Images.Count > 0) { totalGridWithImages++; } MoveIndexNextStartGridName(); grid.Name = ProcessGridName(); Grids.Add(grid); Console.WriteLine($"This images are from the grid {grid.Name}"); } } catch (ArgumentException ex) { Console.WriteLine(ex.Message); } }
public void ReadNamedStyleInfoBatch(TrueDBGrid grid) { int totalNamedStyles = Utilities.ByteArrayToInt(ReadBytes(4)); for (int i = 0; i < totalNamedStyles; i++) { ReadNamedStyleInfo(grid, i + 1); } }
public void ReadNamedStyleInfo(TrueDBGrid grid, int idx) { NamedStyle namedStyle = new NamedStyle(); namedStyle.Name = Utilities.ByteArrayToString(ReadBytes(26)); readerIndex += 6; namedStyle.Style = grid.AllStyles[Utilities.ByteArrayToInt(ReadBytes(4))]; namedStyle.Index = idx; grid.NamedStyles.Add(namedStyle); }
public void ProcessStyleAssignmentsBatch(TrueDBGrid grid) { int totalAssignments = Utilities.ByteArrayToInt(ReadBytes(4)); readerIndex += 20; // ignore the first batch. It's always empty int i = 1; foreach (string styleName in Constants.GridSplitStyleAssignmentOrder) { StyleAssignment styleAssignment = ReadStyleAssignmentInfo(styleName); grid.StylesAssignments.Add(styleAssignment); if (styleAssignment.SplitIndex != 0 || styleAssignment.DisplayColumnIndex != 0) { throw new ArgumentException("Unexpected index found"); } i++; } while (i < totalAssignments) { StyleAssignment styleAssignmentInfo = ReadStyleAssignmentInfo(Constants.GridSplitStyleAssignmentOrder[0]); i++; if (styleAssignmentInfo.DisplayColumnIndex == 0) { grid.getSplitAt(styleAssignmentInfo.SplitIndex - 1).StylesAssignments.Add(styleAssignmentInfo); for (int j = 1; j < Constants.GridSplitStyleAssignmentOrder.Length; j++) { StyleAssignment splitStyleAsg = ReadStyleAssignmentInfo(Constants.GridSplitStyleAssignmentOrder[j]); grid.getSplitAt(splitStyleAsg.SplitIndex - 1).StylesAssignments.Add(splitStyleAsg); i++; } } else { styleAssignmentInfo.StyleName = Constants.DisplayColumnsStyleAssignmentOrder[0]; grid.getSplitAt(styleAssignmentInfo.SplitIndex - 1).getColumnAt(styleAssignmentInfo.DisplayColumnIndex - 1).StylesAssignments.Add(styleAssignmentInfo); for (int j = 1; j < Constants.DisplayColumnsStyleAssignmentOrder.Length; j++) { StyleAssignment colStyleAsg = ReadStyleAssignmentInfo(Constants.DisplayColumnsStyleAssignmentOrder[j]); grid.getSplitAt(colStyleAsg.SplitIndex - 1).getColumnAt(colStyleAsg.DisplayColumnIndex - 1).StylesAssignments.Add(colStyleAsg); i++; } } } }