Solved

Format and write a .net dataset to fixed length file format.

Posted on 2006-11-05
9
414 Views
Last Modified: 2012-05-05
I have a result set in a C# console app. I want to write each row to a fixed length file. ie: each resultset element will take x amount of spaces that I define. How do you do this in C#?
0
Comment
Question by:claghorn
9 Comments
 
LVL 15

Accepted Solution

by:
ozymandias earned 20 total points
ID: 17877391
first create an array of int with each int representing the length of each field in your fixed width field.

<pseudo-code>

int[] fieldLength = new int[]{5,10,25};
foreach (row in dataset){
    foreach(field in row){
        string s = field.ToString();
        s = s.PadRight(fieldLength[fieldnumber], ' '); // pads the string out to the specified length with spaces
        add s to your fixed width record
    }
    add fixed width record to fixed width file
}

</pseudo-code>
0
 

Author Comment

by:claghorn
ID: 17878176
close, but it does not terminate each line in the resulting file. ie: the line continues infinitem. btw putting "\n" puts a space between each line and does not terminate each line either. Can you suggest the rest for a full soultion?
0
 
LVL 11

Expert Comment

by:Expert1701
ID: 17879121
The string, "\r\n", should terminate the line.
0
 

Author Comment

by:claghorn
ID: 17881052
Thanks, but no luck. It does not terminate the line. ie: if you cursor (right arrow) over the line it continues beyond.
Also, the lines are spaced now.
I always did get the return to next line when not specifying the "\r\n", but again, the line continues beyond the end.
The file does not behave like a main frame generated file that, when you cursor through it, it returns you to the next line.

0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 15

Expert Comment

by:ozymandias
ID: 17881152
Lines cannot possibly continue beyond the end.
The end is, by definition, the point beyond which the line does not continue.
The most likely explanation is that the lines does not end where you expect them to, i.e. you have padded the last field of the record out with spaces.
0
 
LVL 15

Expert Comment

by:ozymandias
ID: 17902712
Did you have any luck with this ?
0
 

Author Comment

by:claghorn
ID: 17911061
If I try to put a \r or \n, I get a space separating each line. This is unwanted. I want to be able to scroll through each line and where the data ends, find myself at the beginning of the next line.  
0
 
LVL 15

Expert Comment

by:ozymandias
ID: 17912535
OK. Is it possible that you are creating the record adding a \n or a \r (or both) to the end of it and then using the WriteLine() method of some stream/file/text writer that is appending another \r\n to the end of the line ?

It would be useful if you showed your code but to be honest for a 20 point question you can't expect miracles.
The best you can hope for for 20 points is to be pointed in the right direction and if you are lucky some pseudo-code.
It's a bit much to then go and give a B grade because you can't get the linefeeds to work.
0
 
LVL 3

Expert Comment

by:baldrick
ID: 17938047
Use System.Environment.NewLine, not "\r\n"
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Introduction This article series is supposed to shed some light on the use of IDisposable and objects that inherit from it. In essence, a more apt title for this article would be: using (IDisposable) {}. I’m just not sure how many people would ge…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now