GD_GRAY
asked on
How would I export a DataTable to a text file and define the string length and the start position of each column ?
My issue is I need to build a text file with a specific format. Each row (line) in the text file can only be 111 characters long and each row (line) in the text file will represent a single row from the DataTable.
DataTable:
Column1 | Column2 | Column3 | Column4
My |Phone # |is |8000000000
My |Phone # |is |9990000000
TextFile:
Column1 starts at position 0, Column2 starts at position 2, Column3 starts at position 40, Column4 starts at position 90,
MyPhone# is 8000000000
MyPhone# is 9990000000
I am able to use
And call it like
but that is all I can come up with.
result:
My,Phone#,is,8000000000
My,Phone#,is,9990000000
Can any one expand on this for me.
Thanks.....
DataTable:
Column1 | Column2 | Column3 | Column4
My |Phone # |is |8000000000
My |Phone # |is |9990000000
TextFile:
Column1 starts at position 0, Column2 starts at position 2, Column3 starts at position 40, Column4 starts at position 90,
MyPhone# is 8000000000
MyPhone# is 9990000000
I am able to use
public void ExportDataTabletoFile(DataTable datatable, string delimited, bool exportcolumnsheader, string file)
{
StreamWriter str = new StreamWriter(file, false, System.Text.Encoding.Default);
if (exportcolumnsheader)
{
string Columns = string.Empty;
foreach (DataColumn column in datatable.Columns)
{
Columns += column.ColumnName + delimited;
}
str.WriteLine(Columns.Remove(Columns.Length - 1, 1));
}
foreach (DataRow datarow in datatable.Rows)
{
string row = string.Empty;
foreach (object items in datarow.ItemArray)
{
row += items.ToString() + delimited;
}
str.WriteLine(row.Remove(row.Length - 1, 1));
}
str.Flush();
str.Close();
}
And call it like
ExportDataTabletoFile(GetTable(), " ,", false, file);
but that is all I can come up with.
result:
My,Phone#,is,8000000000
My,Phone#,is,9990000000
Can any one expand on this for me.
Thanks.....
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Wow......
Thank you !
Thank you !
ASKER
Soto Sir,
Any way to get the string format values from a list, or a datatable column ?
Any way to get the string format values from a list, or a datatable column ?
To your followup question, "Any way to get the string format values from a list, or a datatable column ?", the format specifier is just a string and can be stored in a list or any object that can store a string in. When you are ready to use it retrieve it from where you are storing it and place it in a string variable and use that string variable where the specifier is now.
Do you want
my,phone, is, ######## or
column1start = 0
column2start=4
column3start=40
column4start-90
output = column1.text + ","
spaces = column2start - strlen(output)
spacer = ""
for (I=0;i<spaces;i++){spacer += " ";}
output= output + spacer + column2.txt + ",";
spaces = column3start - strlen(output);
spacer = ""
for (I=0;i<spaces;i++){spacer += " ";}
output= output + spacer + column3.txt + ",";
spaces = column4start - strlen(output);
spacer = ""
for (I=0;i<spaces;i++){spacer += " ";}
output= output + spacer + column4.txt;
write(output);