Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.95 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.IO;
  5. using System.Text.RegularExpressions;
  6.  
  7. namespace splitDemo
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             var stopWatch = new Stopwatch();
  14.             stopWatch.Start();
  15.  
  16.  
  17.             var mainFilePath = "C:/Users/ddelev/Downloads/weekly_snapshot_2608.csv";
  18.             var partsDirectory = "C:/Users/ddelev/Downloads/parts";
  19.             var filesCount = 10;
  20.  
  21.             var lines = new List<string>();
  22.  
  23.             using (StreamReader sr = new StreamReader(mainFilePath))
  24.             {
  25.                 string line;
  26.  
  27.                 while ((line = sr.ReadLine()) != null)
  28.                 {
  29.                     lines.Add(line);
  30.                 }
  31.             }
  32.  
  33.             var fileCounter = 1;
  34.             var linesPerFile = lines.Count / filesCount;
  35.             var currEndLine = linesPerFile;
  36.  
  37.             var stream = new StreamWriter($"{partsDirectory}/part{fileCounter}.csv");
  38.  
  39.             for (int row = 0; row < lines.Count; row++)
  40.             {
  41.                 //stream.WriteLine(Regex.Replace(lines[row], @"[\n\r\t]", ""));
  42.                 stream.WriteLine(lines[row]);
  43.  
  44.                 if (row == currEndLine - 1 && fileCounter < 10)
  45.                 {
  46.                     Console.WriteLine(currEndLine);
  47.                     fileCounter++;
  48.  
  49.                     if (fileCounter == 10)
  50.                     {
  51.                         currEndLine = lines.Count;
  52.                     }
  53.                     else
  54.                     {
  55.                         currEndLine += linesPerFile;
  56.                     }
  57.                     stream.Close();
  58.                     stream = new StreamWriter($"{partsDirectory}/part{fileCounter}.csv");
  59.                 }
  60.             }
  61.             stream.Close();
  62.  
  63.             stopWatch.Stop();
  64.             Console.WriteLine(stopWatch.Elapsed);
  65.         }
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement