Advertisement
Guest User

Untitled

a guest
May 24th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.79 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Collections.Generic;
  4. using System.Diagnostics;
  5. using System.Threading;
  6. using HtmlAgilityPack;
  7. using System.Linq;
  8.  
  9. namespace ConsoleApp11
  10. {
  11. class Program
  12. {
  13.  
  14. static void Main(string[] args)
  15. {
  16. Console.WriteLine("Hello World!");
  17.  
  18. postcodeParser P1 = new postcodeParser();
  19. Console.WriteLine(P1.postcodeNaarWijk("2904CL"));
  20. Console.WriteLine(P1.straatnaamNaarWijk("BLAAK"));
  21. Console.Read();
  22. }
  23. }
  24.  
  25. public class postcodeParser
  26. {
  27. public static List<string> postcodes = new List<string>();
  28. public static List<string> wijkcodesBijPostcodes = new List<string>();
  29. public static List<string> wijkcodesBijWijkNamen = new List<string>();
  30. public static List<string> wijkNamen = new List<string>();
  31. public static List<string> straten = new List<string>();
  32. public static List<string> wijkenVanStraten = new List<string>();
  33. public static List<List<string>> wijkenStraten = new List<List<string>>();
  34.  
  35. public postcodeParser()
  36. {
  37. using (var reader = new StreamReader(@"D:\AlleCsv\misdaden\Straatroof-2011.csv"))
  38. {
  39. while (!reader.EndOfStream)
  40. {
  41. var line = reader.ReadLine();
  42. var values = line.Split(";");
  43. try
  44. {
  45. if (!straten.Contains(values[19]))
  46. {
  47. straten.Add(values[19]);
  48. wijkenVanStraten.Add(values[17].Substring(2));
  49. }
  50. }
  51. catch
  52. {
  53. }
  54. }
  55. }
  56. /*
  57. using (var reader = new StreamReader(@"D:\AlleCsv\misdaden\fietsdiefstal-2011-2013.csv"))
  58. {
  59. while(!reader.EndOfStream)
  60. {
  61. var line = reader.ReadLine();
  62. var values = line.Split(';');
  63.  
  64. for (int i = 0; i < values.Length; i++)
  65. {
  66. Console.WriteLine(i + " " + values[i]);
  67. }
  68. Thread.Sleep(10000);
  69. }
  70. }*/
  71. Console.WriteLine("Adding");
  72. wijkenStraten.Add(straten);
  73. wijkenStraten.Add(wijkenVanStraten);
  74.  
  75. Console.WriteLine("Sorting");
  76. wijkenStraten[0].Sort();
  77.  
  78.  
  79. for (int i = 0; i < wijkenStraten[0].Count; i++)
  80. {
  81. for (int j = 0; j < wijkenStraten.Count; j++)
  82. {
  83. try
  84. {
  85.  
  86. //Console.Write(wijkenStraten[j][i] + ", ");
  87. }
  88. catch
  89. {
  90.  
  91. }
  92. }
  93. //Thread.Sleep(10);
  94. //Console.WriteLine();
  95. }
  96.  
  97. using (var reader = new StreamReader(@"D:\AlleCsv\wijken\Postcodesenwijken.csv"))
  98. {
  99. while (!reader.EndOfStream)
  100. {
  101. var line = reader.ReadLine();
  102. var values = line.Split(';');
  103.  
  104. postcodes.Add(values[0]);
  105. wijkcodesBijPostcodes.Add(values[3]);
  106. }
  107. }
  108. using (var reader = new StreamReader(@"D:\AlleCsv\wijken\WijkNamen.csv"))
  109. {
  110. while (!reader.EndOfStream)
  111. {
  112. var line = reader.ReadLine();
  113. var values = line.Split(';');
  114.  
  115. wijkcodesBijWijkNamen.Add(values[0]);
  116. wijkNamen.Add(values[1]);
  117. }
  118. }
  119.  
  120. var uniqueStraten = wijkenStraten[1].Distinct().ToList();
  121. uniqueStraten.Sort();
  122. for (int i = 0; i < uniqueStraten.Count; i++)
  123. {
  124. Console.WriteLine(uniqueStraten[i]);
  125. }
  126. Thread.Sleep(10000);
  127. }
  128.  
  129. public string postcodeNaarWijk(string postcode)
  130. {
  131. string wijkcode = wijkcodesBijPostcodes[binarySearch(postcodes, postcode)];
  132. string wijk = wijkNamen[binarySearch(wijkcodesBijWijkNamen, wijkcode)];
  133. return wijk;
  134. }
  135.  
  136. public string straatnaamNaarWijk(string straatnaam)
  137. {
  138. string wijk = wijkenStraten[1][binarySearch(wijkenStraten[0], straatnaam)];
  139. return wijk;
  140. }
  141.  
  142. public static int binarySearch(List<string> theList, string target)
  143. {
  144. Stopwatch SW = new Stopwatch();
  145. SW.Start();
  146. int left = 0;
  147. int right = theList.Count - 1;
  148. int mid;
  149. while(true)
  150. {
  151. mid = ((left + right) / 2);
  152. Console.WriteLine(theList[mid] + " " + target);
  153. Thread.Sleep(100);
  154.  
  155. int situation = string.Compare(theList[mid], target);
  156. switch (situation)
  157. {
  158. //A < B
  159. //Go to the right
  160. case -1:
  161. left = mid + 1;
  162. break;
  163. //A == B
  164. //Found the target
  165. //YA DUN!
  166. case 0:
  167. Console.WriteLine("Ticks: " + SW.ElapsedTicks);
  168. return mid;
  169. //A > B
  170. //Go to the left
  171. case 1:
  172. right = mid - 1;
  173. break;
  174. }
  175. }
  176. }
  177. }
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement