Advertisement
Guest User

Untitled

a guest
May 26th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Dynamic;
  4. using System.IO;
  5. using System.Net;
  6. using Json.Net;
  7. using Newtonsoft.Json;
  8.  
  9. namespace FileCreator
  10. {
  11. internal class Program
  12. {
  13. private String outOffsetFileName = "graphOffset.wg";
  14. private String outFileTitlesName = "graphTitles.wg";
  15. private String outGraphFileName = "graphStruct.wg";
  16.  
  17. private int bytesRequiredForID = 3;
  18. private int amountOfObjects = -1;
  19.  
  20. private List<GraphObject> jsonGraphReader(String fileName)
  21. {
  22. List<GraphObject> graphObjects = new List<GraphObject>();
  23.  
  24. using (StreamReader r = File.OpenText(fileName))
  25. {
  26. string json = r.ReadToEnd();
  27. List<GraphObject> items = JsonConvert.DeserializeObject<List<GraphObject>>(json);
  28. }
  29. return graphObjects;
  30. }
  31.  
  32. private BinaryWriter createNewBinaryFile(String outFileName)
  33. {
  34. return new BinaryWriter(new FileStream(outFileName, FileMode.Create));
  35. }
  36.  
  37. private void saveGraphObjectInitialParameters(GraphObject g, BinaryWriter bw)
  38. {
  39. int offsetBytes = 4;
  40. int requiredBytes = this.bytesRequiredForID + offsetBytes; // ID, OFFSET
  41. byte[] nodeData = new byte[requiredBytes];
  42.  
  43. int offsetStart = this.amountOfObjects * requiredBytes;
  44. //Array.Copy(BitConverter.GetBytes((g.id)),0, nodeData, 0, 3);
  45.  
  46. bw.Write(nodeData);
  47. }
  48.  
  49. private void saveGraphObjectNeightbours(GraphObject g, BinaryWriter bw)
  50. {
  51. int bytesForIDs = g.amountOfNeightbours() * this.bytesRequiredForID; // on given offset all neightbours ids
  52. byte[] nodeData = new byte[bytesForIDs];
  53.  
  54. bw.Write(nodeData);
  55. }
  56.  
  57. private void createGraphFile(String jsonInputFileName)
  58. {
  59.  
  60. List<GraphObject> graphObjects = jsonGraphReader(jsonInputFileName);
  61. this.amountOfObjects = graphObjects.Count;
  62. BinaryWriter bwStreamOffset = createNewBinaryFile(this.outOffsetFileName);
  63.  
  64. foreach (var go in graphObjects)
  65. {
  66. saveGraphObjectInitialParameters(go, bwStreamOffset);
  67. }
  68.  
  69. ////// GRAPH STRUCTURE FILE
  70. BinaryWriter bwStreamGraph = createNewBinaryFile(this.outGraphFileName);
  71. foreach (var go in graphObjects)
  72. {
  73. saveGraphObjectNeightbours(go, bwStreamGraph);
  74. }
  75.  
  76. bwStreamOffset.Close();
  77. bwStreamGraph.Close();
  78. }
  79.  
  80. public static void Main(string[] args)
  81. {
  82. Console.WriteLine("Test");
  83. Console.ReadKey();
  84. }
  85. }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement