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);
        }
Пример #5
0
    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));
            }
        }
Пример #8
0
    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);
        }
Пример #10
0
        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>&nbsp;");
                sbHTML.Append("<a href='" + sResponseFilename + "'>S</a>&nbsp;");
                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));
 }
Пример #16
0
        // 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>&nbsp;");
                sbHTML.Append("<a href='" + sResponseFilename + "'>S</a>&nbsp;");
                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);
        }