public List <ForexitePriceRecord> Read(string zipFilePath, Expression <Func <ForexitePriceRecord, bool> > pred) { List <ForexitePriceRecord> priceRecs = new List <ForexitePriceRecord>(); byte[] block = ZippedFile.ZipDataStreamBytes(zipFilePath); if (block.Length > 0) { priceRecs.AddRange((from f in (from f in System.Text.Encoding.Default.GetString(block, 0, block.Length).Split('\r').ToList() where !f.StartsWith("<") && f.Length > 6 select f.Replace("\n", "")).ToArray() let rec = f.Split(',') select new ForexitePriceRecord() { Symbol = rec[0], PriceDateTime = Forexite.ParseDate(rec[1], rec[2]), Open = double.Parse(rec[3]), High = double.Parse(rec[4]), Low = double.Parse(rec[5]), Close = double.Parse(rec[6]), }) .ToList().Where(pred.Compile())); } return(priceRecs); }
public ZippedFile MergeZippedFilesOnCommonColumn(List <ZippedFile> zippedFiles) { if (!zippedFiles.Any()) { return(new ZippedFile()); } var mergedZipFile = new ZippedFile { Columns = zippedFiles[0].Columns, Rows = zippedFiles[0].Rows }; foreach (var column in zippedFiles[0].Columns) { foreach (var zippedFile in zippedFiles.GetRange(1, zippedFiles.Count - 1)) { var matchingColumn = zippedFile.Columns.FirstOrDefault(i => i == column); if (matchingColumn != null) { var indexOfMatchingColumn = zippedFile.Columns.IndexOf(matchingColumn); // TODO: Add that column's data to the merged zip file } } } return(mergedZipFile); }
//public List<ForexPriceRecord> Read(DateTime priceDate) //{ // return Read(Path.Combine(FileDataPath, Forexite.DateToFileName1(priceDate)), PredicateBuilder.True<ForexPriceRecord>()); //} //public List<ForexPriceRecord> Read(string zipFilePath) //{ // return Read(zipFilePath, PredicateBuilder.True<ForexPriceRecord>()); //} public List <ForexPriceRecord> Read(string zipFilePath) { // file must exist if (!File.Exists(zipFilePath)) { throw new FileNotFoundException(); } List <ForexPriceRecord> priceRecs = new List <ForexPriceRecord>(); byte[] block = ZippedFile.ZipDataStreamBytes(zipFilePath); if (block.Length > 0) { priceRecs.AddRange((from f in (from f in System.Text.Encoding.Default.GetString(block, 0, block.Length).Split('\r').ToList() where !f.StartsWith("<") && f.Length > 6 select f.Replace("\n", "")).ToArray() let rec = f.Split(',') select new ForexPriceRecord() { Symbol = rec[0], PriceDateTime = Forexite.ParseDate(rec[1], rec[2]), Open = double.Parse(rec[3]), High = double.Parse(rec[4]), Low = double.Parse(rec[5]), Close = double.Parse(rec[6]), }) .ToList()); } return(priceRecs); }
public bool ExtractFile(string ArchivePath, string OutputPath) { ZippedFile file = (ZippedFile)archive.GetFile(ArchivePath); DiskFile outfile = new DiskFile(OutputPath); file.CopyTo(outfile, true); return(false); }
public override string Part2(string input, object?args) { var z = new ZippedFile { ZippedString = input }; var l = z.UnzippedStringV2Length; return(l.ToString()); }
public List <string> ToCsvList(string zipFilePath) { byte[] block = ZippedFile.ZipDataStreamBytes(zipFilePath); List <string> recs = System.Text.Encoding.Default.GetString(block, 0, block.Length).Split('\r').ToList(); return((from r in recs where !r.StartsWith("<") && r.Length > 6 select r.Replace("\n", "")).ToList()); }
public void PrintZippedFileContents(ZippedFile zippedFile) { Console.WriteLine(string.Join(',', zippedFile.Columns)); foreach (var row in zippedFile.Rows) { Console.WriteLine(string.Join(',', zippedFile.Rows)); } }
public override string Part1(string input, object?args) { var z = new ZippedFile { ZippedString = input }; var u = z.UnzippedStringV1; return(u.Length.ToString()); }
public ZippedFile ParseZippedFileContentsFromString(string rawZippedFileContents) { var zippedFile = new ZippedFile(); var rows = rawZippedFileContents.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None) .ToList(); zippedFile.Columns = rows[0].Split(',') .ToList(); zippedFile.Rows = rows.GetRange(1, rows.Count - 1); return(zippedFile); }
public IEnumerator <ZippedFile> GetEnumerator() { foreach (var file in zipFile) { ZippedFile zippedFile = new ZippedFile() { FileName = file.FileName, Data = new MemoryStream() }; file.Extract(zippedFile.Data); zippedFile.Data.Position = 0; //set position to 0 yield return(zippedFile); } yield break; }
/// <summary> /// Creates a file in the archive with the specified name from a byte buffer. /// </summary> public void AddFile(string filename, byte[] buffer) { try { ZippedFile file = (ZippedFile)archive.GetFile(filename); if (!file.Exists) { file.Create(); // Write the buffer to the ZippedFile object using (Stream stream = file.OpenWrite(true)) { stream.Write(buffer, 0, buffer.Length); } } } catch (Exception ex) { throw new PrometheusException("Error adding file to archive: " + filename, ex, true); } }
/// <summary> /// Reads a file from the zip archive. /// </summary> /// <returns>A byte array containing the file.</returns> public byte[] ReadFile(string filename) { try { ZippedFile file = (ZippedFile)archive.GetFile(@filename); byte[] buffer = new byte[file.Size]; using (Stream stream = file.OpenRead()) { int totalBytesRead = 0; do { int byteCount = stream.Read(buffer, totalBytesRead, (int)file.Size - totalBytesRead); totalBytesRead += byteCount; }while (totalBytesRead < file.Size); } return(buffer); } catch (Exception ex) { throw new PrometheusException("Error reading file from zip archive: " + filename, ex, true); } }
// This is a refactored helper function which writes a single session to an open SAZ file. internal static void WriteSessionToSAZ(Session oSession, DiskFile odfZip, int iFileNumber, StringBuilder sbHTML, bool bDisplayErrorMessages) { string sBaseFilename = @"raw\" + iFileNumber.ToString("0000"); string sRequestFilename = sBaseFilename + "_c.txt"; string sResponseFilename = sBaseFilename + "_s.txt"; string sMetadataFilename = sBaseFilename + "_m.xml"; // Write the Request to the Archive try { ZippedFile o = new ZippedFile(odfZip, sRequestFilename); Stream oS = o.CreateWrite(FileShare.None); oSession.WriteRequestToStream(false, true, oS); oS.Close(); } catch (Exception eX) { if (bDisplayErrorMessages) { FiddlerApplication.Log.LogString("Archive Failure: Unable to add " + sRequestFilename + "\n\n" + eX.Message); } } // Write the Response to the Archive try { ZippedFile o = new ZippedFile(odfZip, sResponseFilename); Stream oS = o.CreateWrite(FileShare.None); oSession.WriteResponseToStream(oS, false); oS.Close(); } catch (Exception eX) { if (bDisplayErrorMessages) { FiddlerApplication.Log.LogString("Archive Failure: Unable to add " + sResponseFilename + "\n\n" + eX.Message); } } // Write the MetaData to the Archive try { ZippedFile o = new ZippedFile(odfZip, sMetadataFilename); Stream oS = o.CreateWrite(FileShare.None); oSession.WriteMetadataToStream(oS); oS.Close(); } catch (Exception eX) { if (bDisplayErrorMessages) { FiddlerApplication.Log.LogString("Archive Failure: Unable to add " + sMetadataFilename + "\n\n" + eX.Message); } } #region AddIndexHTMLEntry if (null != sbHTML) { sbHTML.Append("<tr>"); sbHTML.Append("<TD><a href='" + sRequestFilename + "'>C</a> "); sbHTML.Append("<a href='" + sResponseFilename + "'>S</a> "); sbHTML.Append("<a href='" + sMetadataFilename + "'>M</a></TD>"); sbHTML.Append("</tr>"); } #endregion AddIndexHTMLEntry }
public byte[] ToByteArray(string zipFilePath) { return(ZippedFile.ZipDataStreamBytes(zipFilePath)); }
public string ToCsvString(string zipFilePath) { byte[] block = ZippedFile.ZipDataStreamBytes(zipFilePath); return(System.Text.Encoding.Default.GetString(block, 0, block.Length)); }
// This is a refactored helper function which writes a single session to an open SAZ file. internal static void WriteSessionToSAZ(Session oSession, DiskFile odfZip, int iFileNumber, string sFileNumberFormatter, StringBuilder sbHTML, bool bDisplayErrorMessages) { string sBaseFilename = @"raw\" + iFileNumber.ToString(sFileNumberFormatter); string sRequestFilename = sBaseFilename + "_c.txt"; string sResponseFilename = sBaseFilename + "_s.txt"; string sMetadataFilename = sBaseFilename + "_m.xml"; // Write the Request to the Archive try { ZippedFile o = new ZippedFile(odfZip, sRequestFilename); Stream oS = o.CreateWrite(FileShare.None); oSession.WriteRequestToStream(false, true, oS); oS.Close(); } catch (Exception eX) { if (bDisplayErrorMessages) { FiddlerApplication.Log.LogString("Archive Failure: Unable to add " + sRequestFilename + "\n\n" + eX.Message); } } // Write the Response to the Archive try { ZippedFile o = new ZippedFile(odfZip, sResponseFilename); Stream oS = o.CreateWrite(FileShare.None); oSession.WriteResponseToStream(oS, false); oS.Close(); } catch (Exception eX) { if (bDisplayErrorMessages) { FiddlerApplication.Log.LogString("Archive Failure: Unable to add " + sResponseFilename + "\n\n" + eX.Message); } } // Write the MetaData to the Archive try { ZippedFile o = new ZippedFile(odfZip, sMetadataFilename); Stream oS = o.CreateWrite(FileShare.None); oSession.WriteMetadataToStream(oS); oS.Close(); } catch (Exception eX) { if (bDisplayErrorMessages) { FiddlerApplication.Log.LogString("Archive Failure: Unable to add " + sMetadataFilename + "\n\n" + eX.Message); } } #region AddIndexHTMLEntry if (null != sbHTML) { sbHTML.Append("<tr>"); sbHTML.Append("<TD><a href='" + sRequestFilename + "'>C</a> "); sbHTML.Append("<a href='" + sResponseFilename + "'>S</a> "); sbHTML.Append("<a href='" + sMetadataFilename + "'>M</a></TD>"); sbHTML.Append("</tr>"); } #endregion AddIndexHTMLEntry }
/// <summary> /// Returns a boolean indicating if the specified file exists in the library. /// </summary> public bool FileExists(string filename) { ZippedFile file = (ZippedFile)archive.GetFile(filename); return(file.Exists); }