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); }
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; }
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); } }
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(); } }
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); }
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); }
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
//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("----------------------------------------------------------"); } }
}//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()); } }
}//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
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