Beispiel #1
0
        private bool WriteMessageToTextRetryQueue(PFLogMessage logMessage)
        {
            PFTextFile logfile           = new PFTextFile(_logFileConnectionString, PFFileOpenOperation.OpenFileForAppend);
            bool       logWriteSucceeded = false;

            try
            {
                logWriteSucceeded = false;
            }
            catch
            {
                logWriteSucceeded = false;
            }
            finally
            {
                if (logfile != null)
                {
                    if (logfile.FileIsOpen)
                    {
                        logfile.CloseFile();
                    }
                }
                logfile = null;
            }

            if (!logWriteSucceeded)
            {
                SaveLogMessageToRetryQueue(logMessage);
            }

            return(logWriteSucceeded);
        }
Beispiel #2
0
        private static void OutputContentsOfFile(string filename)
        {
            PFTextFile file = new PFTextFile(filename, PFFileOpenOperation.OpenFileToRead);

            Program._messageLog.WriteLine(file.ReadAllText());
            if (file.FileIsOpen)
            {
                file.CloseFile();
            }
            file = null;
        }
Beispiel #3
0
        public static void QuickTest3()
        {
            PFTextFile textFile        = new PFTextFile(@"FixedLengthText.txt", PFFileOpenOperation.OpenFileToRead);
            string     data            = string.Empty;
            int        numBytesPerLine = 92;

            data = textFile.ReadData(numBytesPerLine, true);
            while (data != null)
            {
                Program._messageLog.WriteLine(data);
                data = textFile.ReadData(numBytesPerLine, true);
            }
        }
Beispiel #4
0
        public void LoadFromFileSystem()
        {
            PFTextFile    mruListFile     = null;
            StringBuilder mruListFilePath = new StringBuilder();
            string        mruItem         = string.Empty;

            if (fileSystemMruPath != null)
            {
                mruStripMutex.WaitOne();

                RemoveAll();

                mruListFilePath.Length = 0;
                try
                {
                    mruListFilePath.Append(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
                    if (mruListFilePath.ToString().EndsWith(@"\") == false)
                    {
                        mruListFilePath.Append(@"\");
                    }
                    mruListFilePath.Append(this.fileSystemMruPath);
                    if (mruListFilePath.ToString().EndsWith(@"\") == false)
                    {
                        mruListFilePath.Append(@"\");
                    }
                    if (Directory.Exists(mruListFilePath.ToString()) == false)
                    {
                        Directory.CreateDirectory(mruListFilePath.ToString());
                    }
                    mruListFilePath.Append(fileSystemMruFileName);
                }
                catch (SystemException ex)
                {
                    throw new System.Exception(AppGlobals.AppMessages.FormatErrorMessage(ex));
                }

                if (File.Exists(mruListFilePath.ToString()))
                {
                    mruListFile = new PFTextFile(mruListFilePath.ToString(), PFFileOpenOperation.OpenFileToRead);
                    while (mruListFile.Peek() >= 0)
                    {
                        mruItem = mruListFile.ReadLine();
                        AddFile(mruItem);
                    }
                    mruListFile.CloseFile();
                    mruListFile = null;
                }

                mruStripMutex.ReleaseMutex();
            }
        }
Beispiel #5
0
        public void SaveToFileSystem()
        {
            PFTextFile    mruListFile     = null;
            StringBuilder mruListFilePath = new StringBuilder();
            string        mruItem         = string.Empty;

            if (fileSystemMruPath != null)
            {
                mruStripMutex.WaitOne();

                mruListFilePath.Length = 0;
                try
                {
                    mruListFilePath.Append(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
                    if (mruListFilePath.ToString().EndsWith(@"\") == false)
                    {
                        mruListFilePath.Append(@"\");
                    }
                    mruListFilePath.Append(this.fileSystemMruPath);
                    if (mruListFilePath.ToString().EndsWith(@"\") == false)
                    {
                        mruListFilePath.Append(@"\");
                    }
                    if (Directory.Exists(mruListFilePath.ToString()) == false)
                    {
                        Directory.CreateDirectory(mruListFilePath.ToString());
                    }
                    mruListFilePath.Append(fileSystemMruFileName);
                }
                catch (SystemException ex)
                {
                    throw new System.Exception(AppGlobals.AppMessages.FormatErrorMessage(ex));
                }

                mruListFile = new PFTextFile(mruListFilePath.ToString(), PFFileOpenOperation.OpenFileForWrite);

                int i = 0;
                for (i = EndIndex - 1; i >= StartIndex; i--)
                {
                    mruItem = ((MruMenuItem)MenuItems[i]).Filename;
                    mruListFile.WriteLine(mruItem);
                }

                mruListFile.CloseFile();
                mruListFile = null;

                mruStripMutex.ReleaseMutex();
            }
        }
        /// <summary>
        /// Routine to copy data from a fixed length data text file to an ADO.NET DataTable object.
        /// </summary>
        /// <param name="dataFileName">Path to file containing the data.</param>
        /// <param name="lineDef">PFFixedLengthDataLine object containing the line formatting information for the specified data file.</param>
        /// <returns>ADO.NET DataTable.</returns>
        public DataTable ImportFixedLengthTextFileToDataTable(string dataFileName, PFFixedLengthDataLine lineDef)
        {
            PFTextFile textFile   = new PFTextFile(dataFileName, PFFileOpenOperation.OpenFileToRead);
            DataTable  dt         = new DataTable();
            int        numColumns = -1;
            string     line       = string.Empty;


            numColumns = lineDef.ColumnDefinitions.NumberOfColumns;
            for (int i = 0; i < numColumns; i++)
            {
                DataColumn dc = new DataColumn();
                dc.ColumnName = lineDef.ColumnDefinitions.ColumnDefinition[i].ColumnName;
                dc.DataType   = System.Type.GetType("System.String");
                dc.MaxLength  = lineDef.ColumnDefinitions.ColumnDefinition[i].ColumnLength;
                dt.Columns.Add(dc);
            }//end for

            //ignore first line if it contains the column names
            if (lineDef.ColumnNamesOnFirstLine)
            {
                if (textFile.Peek() >= 0)
                {
                    line = textFile.ReadData(lineDef.LineLength);
                }
            }
            //read the data lines
            while (textFile.Peek() >= 0)
            {
                line = textFile.ReadData(lineDef.LineLength);
                lineDef.ParseData(line);
                DataRow dr = dt.NewRow();
                for (int i = 0; i < numColumns; i++)
                {
                    dr[i] = lineDef.ColumnData.ColumnDataValue[i].Data;
                } //end for
                dt.Rows.Add(dr);
            }     //end while

            return(dt);
        }
Beispiel #7
0
        private void ExportToTextFile(string colDelimiter, string eol)
        {
            PFDataDelimitersPrompt delimitersPrompt = new PFDataDelimitersPrompt();
            string              fileName            = string.Empty;
            string              columnDelimiter     = string.Empty;
            string              lineTerminator      = string.Empty;
            PFTextFile          outputFile          = null;
            PFDelimitedDataLine dataLine            = null;


            try
            {
                if (columnDelimiter == string.Empty && eol == string.Empty)
                {
                    if (delimitersPrompt.ShowDialog() != DialogResult.OK)
                    {
                        delimitersPrompt.Close();
                        return;
                    }
                    else
                    {
                        columnDelimiter = delimitersPrompt.ColumnDelimiter;
                        lineTerminator  = delimitersPrompt.LineTerminator;
                        delimitersPrompt.Close();
                    }
                }
                else
                {
                    columnDelimiter = colDelimiter;
                    lineTerminator  = eol;
                }


                if (ShowSaveFileDialog() != DialogResult.OK)
                {
                    return;
                }

                fileName = _saveFileDialog.FileName;

                outputFile = new PFTextFile(fileName, PFFileOpenOperation.OpenFileForWrite);
                dataLine   = new PFDelimitedDataLine(2);
                dataLine.ColumnSeparator = columnDelimiter;
                dataLine.LineTerminator  = lineTerminator;

                for (int i = 0; i < this.dataGridAppSettings.Rows.Count; i++)
                {
                    DataGridViewRow row = this.dataGridAppSettings.Rows[i];
                    for (int j = 0; j < row.Cells.Count; j++)
                    {
                        //excelApp.Cells[i + 1, j + 1] = row.Cells[j].Value.ToString();
                        dataLine.SetColumnData(j, row.Cells[j].Value.ToString());
                    }
                    outputFile.WriteData(dataLine.OutputColumnData());
                }

                outputFile.CloseFile();
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToErrorLog);
            }
            finally
            {
                ;
            }
        }
        /// <summary>
        /// Routine to parse the first line of a delimited text file and infer the file's column definitions.
        /// </summary>
        /// <param name="textFilePath">Path to file containing delimited data.</param>
        /// <param name="columnDelimiter">Delimiter character used to separate column data.</param>
        /// <param name="lineTerminator">Delimiter that marks the end of a line of data.</param>
        /// <param name="columnNamesOnFirstLine">If true, first line of file contains column names. Otherwise, file does not contain column names.</param>
        /// <param name="stringValuesSurroundedWithQuotationMarks">If true, values in file are surrounded by double quotes.</param>
        /// <returns>Object representing class used to define and parse a delimited line of text.</returns>
        public PFDelimitedDataLine CreateDelimitedLineDefinitionFromTextFile(string textFilePath, string columnDelimiter, string lineTerminator, bool columnNamesOnFirstLine, bool stringValuesSurroundedWithQuotationMarks)
        {
            PFDelimitedDataLine delimitedLine = null;
            PFTextFile          textFile      = new PFTextFile(textFilePath, PFFileOpenOperation.OpenFileToRead);
            string line = string.Empty;

            string[] cols    = null;
            string[] seps    = null;
            string   colName = string.Empty;

            try
            {
                //read first line of file
                if (textFile.Peek() >= 0)
                {
                    line = textFile.ReadLine();
                }

                if (line == string.Empty)
                {
                    _msg.Length = 0;
                    _msg.Append("File is empty: ");
                    _msg.Append(textFilePath);
                    _msg.Append(". Unable to create delimited file column definitions.");
                    throw new System.Exception(_msg.ToString());
                }

                seps = new string[1] {
                    columnDelimiter
                };
                cols = line.Split(seps, StringSplitOptions.None);

                delimitedLine = new PFDelimitedDataLine(cols.Length);

                delimitedLine.NumberOfColumns = cols.Length;
                delimitedLine.ColumnDefinitions.NumberOfColumns = cols.Length;
                delimitedLine.LineTerminator         = lineTerminator;
                delimitedLine.ColumnSeparator        = columnDelimiter;
                delimitedLine.ColumnNamesOnFirstLine = columnNamesOnFirstLine;
                delimitedLine.StringValuesSurroundedWithQuotationMarks = stringValuesSurroundedWithQuotationMarks;

                for (int i = 0; i < cols.Length; i++)
                {
                    if (columnNamesOnFirstLine)
                    {
                        delimitedLine.SetColumnDefinition(i, cols[i], int.MaxValue);
                    }
                    else
                    {
                        delimitedLine.SetColumnDefinition(i, "Col" + (i + 1).ToString(), int.MaxValue);
                    }
                }
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(ex.Message);
                throw new System.Exception(_msg.ToString());
            }
            finally
            {
                if (textFile.FileIsOpen)
                {
                    textFile.CloseFile();
                }
            }


            return(delimitedLine);
        }
Beispiel #9
0
        public static void FixedLengthExtractFileTest(MainForm frm)
        {
            PFSQLServer sqlserv          = new PFSQLServer();
            string      connectionString = string.Empty;
            string      sqlQuery         = "select GeographyKey, City, StateProvinceName as StateName, EnglishCountryRegionName as CountryName, PostalCode, SalesTerritoryKey as TerritoryKey from dbo.DimGeography;";
            PFTextFile  extractFile      = new PFTextFile(@"c:\temp\FixedLengthFileTest.txt", PFFileOpenOperation.OpenFileForWrite);
            Stopwatch   watch            = new Stopwatch();

            try
            {
                watch.Start();

                sqlserv.ServerName            = "PROFASTWS1";
                sqlserv.DatabaseName          = "AdventureWorksDW2008R2";
                sqlserv.UseIntegratedSecurity = true;
                sqlserv.ApplicationName       = "TextExtractTest";
                sqlserv.WorkstationId         = Environment.MachineName;

                connectionString = sqlserv.ConnectionString;

                _msg.Length = 0;
                _msg.Append("Connection string is: \r\n");
                _msg.Append(connectionString);
                Program._messageLog.WriteLine(_msg.ToString());


                sqlserv.OpenConnection();


                sqlserv.SQLQuery    = sqlQuery;
                sqlserv.CommandType = CommandType.Text;

                SqlDataReader rdr = (SqlDataReader)sqlserv.RunQueryDataReader();

                DataTable             schemaTable = rdr.GetSchemaTable();
                PFFixedLengthDataLine line        = new PFFixedLengthDataLine(schemaTable.Rows.Count);
                line.UseLineTerminator   = frm.chkFixedLengthCrLf.Checked;
                line.AllowDataTruncation = frm.chkAllowDataTruncation.Checked;

                //foreach (DataRow myField in schemaTable.Rows)
                //{
                //    //For each property of the field...
                //    foreach (DataColumn myProperty in schemaTable.Columns)
                //    {
                //        //Display the field name and value.
                //        Program._messageLog.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString() + " - " );
                //    }
                //}
                //Program._messageLog.WriteLine("--------------------------------");

                //Program._messageLog.WriteLine(schemaTable.Rows[0]["DataType"].ToString());
                //Program._messageLog.WriteLine(schemaTable.Rows[1].ItemArray[12].ToString());
                //Program._messageLog.WriteLine(schemaTable.Rows[2].ItemArray[12].ToString());
                //Program._messageLog.WriteLine(schemaTable.Rows[3].ItemArray[12].ToString());
                //Program._messageLog.WriteLine(schemaTable.Rows[4].ItemArray[12].ToString());
                //Program._messageLog.WriteLine(schemaTable.Rows[5].ItemArray[12].ToString());

                ////DataRow row = schemaTable.Rows[0];
                ////Program._messageLog.WriteLine(row["ColumnName"] + " is " + row["DataType"]);

                //Program._messageLog.WriteLine("--------------------------------");

                //for (int rowInx = 0; rowInx < schemaTable.Rows.Count; rowInx++)
                //{
                //    DataRow row = schemaTable.Rows[rowInx];
                //    Program._messageLog.WriteLine(row["ColumnName"] + " is " + row["DataType"]);
                //}

                //Program._messageLog.WriteLine("--------------------------------");

                //line.SetColumnDefinition(0, "GeographyKey", 12,PFDataAlign.RightJustify);
                //line.SetColumnDefinition(1, "City", 30, PFDataAlign.LeftJustify);
                //line.SetColumnDefinition(2, "StateName", 50, PFDataAlign.LeftJustify);
                //line.SetColumnDefinition(3, "CountryName", 50, PFDataAlign.LeftJustify);
                //line.SetColumnDefinition(4, "PostalCode", 15, PFDataAlign.LeftJustify);
                //line.SetColumnDefinition(5, "TerritoryKey", 12, PFDataAlign.RightJustify);

                //foreach (DataRow myField in schemaTable.Rows)
                //{
                //    //For each property of the field...
                //    foreach (DataColumn myProperty in schemaTable.Columns)
                //    {
                //    //Display the field name and value.
                //        Program._messageLog.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString());
                //    }
                //}


                for (int rowInx = 0; rowInx < schemaTable.Rows.Count; rowInx++)
                {
                    DataRow     row           = schemaTable.Rows[rowInx];
                    string      colName       = row["ColumnName"].ToString();
                    System.Type colType       = (System.Type)row["DataType"];
                    bool        typeIsNumeric = PFFixedLengthDataLine.DataTypeIsNumeric(colType);
                    int         colLen        = PFFixedLengthDataLine.GetNumericTypeMaxExtractLength(colType);
                    if (colLen < 1)
                    {
                        colLen = (int)row["ColumnSize"];
                    }
                    if (colName.Length > colLen)
                    {
                        colLen = colName.Length;
                    }
                    PFDataAlign dataAlignment = typeIsNumeric ? PFDataAlign.RightJustify : PFDataAlign.LeftJustify;

                    line.SetColumnDefinition(rowInx, colName, colLen, dataAlignment);
                    Program._messageLog.WriteLine(colName + ", " + colType.FullName + ", " + colLen.ToString() + ", " + dataAlignment.ToString());
                }
                extractFile.WriteData(line.OutputColumnNames());

                int numRows = 0;
                if (rdr.HasRows)
                {
                    int colInx    = 0;
                    int maxColInx = -1;
                    while (rdr.Read())
                    {
                        numRows++;
                        maxColInx = rdr.FieldCount - 1;
                        for (colInx = 0; colInx <= maxColInx; colInx++)
                        {
                            line.SetColumnData(colInx, rdr[colInx].ToString());
                        }
                        extractFile.WriteData(line.OutputColumnData());
                    }
                }

                _msg.Length = 0;
                _msg.Append("Number of data rows written:   ");
                _msg.Append(numRows.ToString("#,##0"));
                _msg.Append("\r\n");
                _msg.Append("Number of header rows written: 1");
                Program._messageLog.WriteLine(_msg.ToString());
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                Program._messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                sqlserv.CloseConnection();
                sqlserv = null;
                if (extractFile != null)
                {
                    extractFile.CloseFile();
                    extractFile = null;
                }
                watch.Stop();
                _msg.Length = 0;
                _msg.Append("Elapsed time: ");
                _msg.Append(watch.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());
            }
        }//end test
Beispiel #10
0
        //tests
        public static void RunPFTextFileTests(bool appendData, bool deleteAfterWrite)
        {
            Program._messageLog.Clear();
            Program._messageLog.WriteLine("----------------------------------------------------------");
            Program._messageLog.WriteLine("RunPFTextFileTests starting ...");
            try
            {
                string     fileName = @"c:\temp\TestTextFile1.txt";
                string     fileData = string.Empty;
                PFTextFile textFile = null;

                if (appendData)
                {
                    textFile = new PFTextFile(@"c:\temp\TestTextFile1.txt", PFFileOpenOperation.OpenFileForAppend);
                }
                else
                {
                    textFile = new PFTextFile(fileName, PFFileOpenOperation.OpenFileForWrite);
                }
                textFile.WriteLine("This is line 1.");
                textFile.WriteData("abcdefghijk");
                textFile.WriteData("12345678901");
                textFile.WriteBlankLine(10);
                textFile.WriteLine("This is line 2.");
                textFile.CloseFile();
                textFile.OpenFile(fileName, PFFileOpenOperation.OpenFileToRead);
                fileData = textFile.ReadAllText();
                textFile.CloseFile();
                Program._messageLog.WriteLine(fileData);

                Program._messageLog.WriteLine(string.Empty);
                Program._messageLog.WriteLine("Read lines test follows:\r\n");
                textFile.OpenFile(fileName, PFFileOpenOperation.OpenFileToRead);
                while (textFile.Peek() >= 0)
                {
                    fileData = textFile.ReadLine();
                    Program._messageLog.WriteLine(fileData);
                }
                textFile.CloseFile();


                Program._messageLog.WriteLine(string.Empty);
                Program._messageLog.WriteLine("Read lines test 2 follows:\r\n");
                textFile.OpenFile(fileName, PFFileOpenOperation.OpenFileToRead);
                fileData = textFile.ReadLine();
                while (fileData != null)
                {
                    Program._messageLog.WriteLine(fileData);
                    fileData = textFile.ReadLine();
                }

                _msg.Length = 0;
                _msg.Append("\r\nFILE SIZE: \r\n");
                _msg.Append(textFile.Length.ToString("#,##0"));
                _msg.Append(" bytes.");
                Program._messageLog.WriteLine(_msg.ToString());
                textFile.CloseFile();


                if (deleteAfterWrite)
                {
                    PFTextFile.DeleteFile(textFile);
                }
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                Program._messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                Program._messageLog.WriteLine("... RunPFTextFileTests finished.");
                Program._messageLog.WriteLine("----------------------------------------------------------");
            }
        }
Beispiel #11
0
        }//end method

        public static void DelimitedExtractFileTest(MainForm frm)
        {
            PFSQLServer sqlserv          = new PFSQLServer();
            string      connectionString = string.Empty;
            string      sqlQuery         = "select GeographyKey, City, StateProvinceName as StateName, EnglishCountryRegionName as CountryName, PostalCode from dbo.DimGeography;";
            PFTextFile  extractFile      = new PFTextFile(@"c:\temp\ExtractFileTest.txt", PFFileOpenOperation.OpenFileForWrite);
            Stopwatch   watch            = new Stopwatch();

            try
            {
                watch.Start();

                sqlserv.ServerName            = "PROFASTSV2";
                sqlserv.DatabaseName          = "AdventureWorksDW2008R2";
                sqlserv.UseIntegratedSecurity = true;
                sqlserv.ApplicationName       = "TextExtractTest";
                sqlserv.WorkstationId         = Environment.MachineName;

                connectionString = sqlserv.ConnectionString;

                _msg.Length = 0;
                _msg.Append("Connection string is: \r\n");
                _msg.Append(connectionString);
                Program._messageLog.WriteLine(_msg.ToString());


                sqlserv.OpenConnection();


                sqlserv.SQLQuery    = sqlQuery;
                sqlserv.CommandType = CommandType.Text;

                SqlDataReader rdr = (SqlDataReader)sqlserv.RunQueryDataReader();

                DataTable           schemaTable = rdr.GetSchemaTable();
                PFDelimitedDataLine line        = new PFDelimitedDataLine(schemaTable.Rows.Count);

                for (int i = 0; i < schemaTable.Rows.Count; i++)
                {
                    line.SetColumnDefinition(i, schemaTable.Rows[i]["ColumnName"].ToString());
                }
                extractFile.WriteData(line.OutputColumnNames());

                //foreach (DataRow row in schemaTable.Rows)
                //{

                //    Program._messageLog.WriteLine(row["ColumnName"].ToString());
                //    //For each property of the field...
                //    //foreach (DataColumn prop in schemaTable.Columns)
                //    //{
                //    //    //Display the field name and value.
                //    //     Program._messageLog.WriteLine(prop.ColumnName + " = " + fld[prop].ToString());
                //    //}

                //}

                int numRows = 0;
                if (rdr.HasRows)
                {
                    int colInx    = 0;
                    int maxColInx = -1;
                    while (rdr.Read())
                    {
                        numRows++;
                        maxColInx = rdr.FieldCount - 1;
                        for (colInx = 0; colInx <= maxColInx; colInx++)
                        {
                            line.SetColumnData(colInx, rdr[colInx].ToString());
                        }
                        extractFile.WriteData(line.OutputColumnData());
                    }
                }

                _msg.Length = 0;
                _msg.Append("Number of data rows written:   ");
                _msg.Append(numRows.ToString("#,##0"));
                _msg.Append("\r\n");
                _msg.Append("Number of header rows written: 1");
                Program._messageLog.WriteLine(_msg.ToString());

                //if (rdr.HasRows)
                //{

                //    int colInx = 0;
                //    int maxColInx = -1;
                //    while (rdr.Read())
                //    {
                //        _msg.Length = 0;
                //        maxColInx = rdr.FieldCount - 1;
                //        for (colInx = 0; colInx <= maxColInx; colInx++)
                //        {
                //            _msg.Append(rdr.GetName(colInx));
                //            _msg.Append(": ");
                //            _msg.Append(rdr[colInx].ToString());
                //            if (colInx < maxColInx)
                //                _msg.Append(", ");
                //        }
                //        Program._messageLog.WriteLine(_msg.ToString());
                //    }
                //}
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                Program._messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                sqlserv.CloseConnection();
                sqlserv = null;
                if (extractFile != null)
                {
                    extractFile.CloseFile();
                    extractFile = null;
                }
                watch.Stop();
                _msg.Length = 0;
                _msg.Append("Elapsed time: ");
                _msg.Append(watch.FormattedElapsedTime);
                Program._messageLog.WriteLine(_msg.ToString());
            }
        }
Beispiel #12
0
        }//end DelimitedLineTextFileTests

        public static void FixedLengthLineTextFileTests(int numRowsToOutput, bool useCrLfLineTerminator, bool allowDataTruncation)
        {
            PFTextFile            textFile = new PFTextFile(@"c:\temp\FixedLengthText.txt", PFFileOpenOperation.OpenFileForWrite);
            PFFixedLengthDataLine line     = new PFFixedLengthDataLine(5);
            int    num = 0;
            string str = string.Empty;

            char[] tst = { 'a', 'b', 'c', 'd', 'e' };

            try
            {
                line.UseLineTerminator   = useCrLfLineTerminator;
                line.AllowDataTruncation = allowDataTruncation;
                line.SetColumnDefinition(0, "Column01", 10);
                line.SetColumnDefinition(1, "SecondColumnHeadingIsThis", 15);
                line.SetColumnDefinition(2, "Col3HDR", 5);
                line.SetColumnDefinition(3, "Col4", 35);
                line.SetColumnDefinition(4, "FifthColumn", 25, PFDataAlign.RightJustify);

                textFile.WriteData(line.OutputColumnNames());

                for (int rowNum = 0; rowNum < numRowsToOutput; rowNum++)
                {
                    for (int inx = 0; inx < 5; inx++)
                    {
                        num = line.ColumnDefinitions.ColumnDefinition[inx].ColumnLength;
                        if (inx == 4)
                        {
                            num = num - 7;
                        }
                        //str = new string(tst[inx],num);
                        str = PFTextProcessor.RepeatChar(tst[inx], num);
                        line.ColumnData.ColumnDataValue[inx].Data = str;
                        str = null;
                    }
                    textFile.WriteData(line.OutputColumnData());
                }

                textFile.CloseFile();

                line.SaveToXmlFile(@"c:\temp\FixedLengthText.xml");


                //read textfile
                textFile.OpenFile(@"c:\temp\FixedLengthText.txt", PFFileOpenOperation.OpenFileToRead);
                int    lineLen = line.LineLength;
                string input   = textFile.ReadData(lineLen);
                line.VerifyColumnNames(input);
                Program._messageLog.WriteLine(line.ColumnDefinitions.ToString());
                input = textFile.ReadData(lineLen);
                int lineNo = 0;
                while (input != null)
                {
                    lineNo++;
                    line.ParseData(input);
                    Program._messageLog.WriteLine("LINE " + lineNo.ToString() + ": " + line.ColumnData.ToString());
                    input = textFile.ReadData(lineLen);
                }

                textFile.CloseFile();


                PFTextFile            textFile2 = new PFTextFile(@"c:\temp\FixedLengthText2.txt", PFFileOpenOperation.OpenFileForWrite);
                PFFixedLengthDataLine line2     = PFFixedLengthDataLine.LoadFromXmlFile(@"c:\temp\FixedLengthText.xml");

                Program._messageLog.WriteLine(line2.ToXmlString());

                line2.UseLineTerminator = useCrLfLineTerminator;
                line2.SetColumnDefinition(0, "Column01", 10);
                line2.SetColumnDefinition(1, "SecondColumnHeadingIsThis", 15);
                line2.SetColumnDefinition(2, "Col3HDR", 5);
                line2.SetColumnDefinition(3, "Col4", 35);
                line2.SetColumnDefinition(4, "FifthColumn", 25, PFDataAlign.RightJustify);

                textFile2.WriteData(line.OutputColumnNames());

                for (int rowNum = 0; rowNum < numRowsToOutput; rowNum++)
                {
                    for (int inx = 0; inx < 5; inx++)
                    {
                        num = line2.ColumnDefinitions.ColumnDefinition[inx].ColumnLength;
                        if (inx == 4)
                        {
                            num = num - 7;
                        }
                        str = PFTextProcessor.RepeatChar(tst[inx], num);
                        line2.ColumnData.ColumnDataValue[inx].Data = str;
                        str = null;
                    }
                    textFile2.WriteData(line.OutputColumnData());
                }

                Program._messageLog.WriteLine(line2.ToString());


                textFile2.CloseFile();
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                Program._messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                if (textFile != null)
                {
                    if (textFile.FileIsOpen)
                    {
                        textFile.CloseFile();
                    }
                    textFile = null;
                }
            }
        }//end method
Beispiel #13
0
        public static void DelimitedLineTextFileTests(int numRowsToOutput)
        {
            PFTextFile          textFile = new PFTextFile(@"c:\temp\DelimitedText.txt", PFFileOpenOperation.OpenFileForWrite);
            PFDelimitedDataLine line     = new PFDelimitedDataLine(5);
            RandomString        dat      = new RandomString();
            RandomNumber        siz      = new RandomNumber();
            int    num = 0;
            string str = string.Empty;

            try
            {
                line.LineTerminator  = "\r\n";
                line.ColumnSeparator = ",";
                line.SetColumnDefinition(0, "FirstColumn", 10);
                line.SetColumnDefinition(1, "SecondColumn", 15);
                line.SetColumnDefinition(2, "ColumnThree", 5);
                line.SetColumnDefinition(3, "ColumnFour", 35);
                line.SetColumnDefinition(4, "FifthColumn", 25);

                textFile.WriteData(line.OutputColumnNames());

                for (int rowNum = 0; rowNum < numRowsToOutput; rowNum++)
                {
                    for (int inx = 0; inx < 5; inx++)
                    {
                        num = siz.GenerateRandomInt(1, line.ColumnDefinitions.ColumnDefinition[inx].ColumnLength);
                        str = dat.GetStringAL(num);
                        line.ColumnData.ColumnDataValue[inx].Data = str;
                    }
                    textFile.WriteData(line.OutputColumnData());
                }

                textFile.CloseFile();

                line.SaveToXmlFile(@"c:\temp\DelimitedText.xml");

                //read textfile
                textFile.OpenFile(@"c:\temp\DelimitedText.txt", PFFileOpenOperation.OpenFileToRead);
                string input = textFile.ReadLine();
                line.VerifyColumnNames(input);
                Program._messageLog.WriteLine(line.ColumnDefinitions.ToString());
                input = textFile.ReadLine();
                line.ParseData(input);
                Program._messageLog.WriteLine(line.ColumnData.ToString());

                textFile.CloseFile();


                //double check loading of xml schema works
                PFDelimitedDataLine line2 = PFDelimitedDataLine.LoadFromXmlFile(@"c:\temp\DelimitedText.xml");

                Program._messageLog.WriteLine(line2.ToXmlString());

                PFTextFile textFile2 = new PFTextFile(@"c:\temp\DelimitedText2.txt", PFFileOpenOperation.OpenFileForWrite);
                char[]     tst       = { 'a', 'b', 'c', 'd', 'e' };

                //line2.LineTerminator = "\r\n";
                line2.ColumnSeparator = ",";
                line2.SetColumnDefinition(0, "Column One", 10);
                line2.SetColumnDefinition(1, "2ndColumn", 15);
                line2.SetColumnDefinition(2, "Column Three", 5);
                line2.SetColumnDefinition(3, "Column Four", 35);
                line2.SetColumnDefinition(4, "5thColumn", 25);

                textFile2.WriteData(line2.OutputColumnNames());

                for (int rowNum = 0; rowNum < numRowsToOutput; rowNum++)
                {
                    for (int inx = 0; inx < 5; inx++)
                    {
                        num = siz.GenerateRandomInt(1, line2.ColumnDefinitions.ColumnDefinition[inx].ColumnLength);
                        str = new string(tst[inx], num);
                        line2.ColumnData.ColumnDataValue[inx].Data = str;
                    }
                    textFile2.WriteData(line2.OutputColumnData());
                }

                textFile2.CloseFile();
            }
            catch (System.Exception ex)
            {
                _msg.Length = 0;
                _msg.Append(AppGlobals.AppMessages.FormatErrorMessage(ex));
                Program._messageLog.WriteLine(_msg.ToString());
                AppMessages.DisplayErrorMessage(_msg.ToString(), _saveErrorMessagesToAppLog);
            }
            finally
            {
                if (textFile != null)
                {
                    textFile = null;
                }
                ;
            }
        }//end DelimitedLineTextFileTests