Solved

Using C# .Net 2.0 to parse a text file.

Posted on 2008-10-23
6
1,071 Views
Last Modified: 2013-12-17
Looking for some advice on how to go about parsing data out of a text file - just need enough help to get started down the right road.  Or if there's an open source library available that'll do the job...I have no interest in re-inventing the wheel!

The text file I have to work with is like the one below; I need to extract a couple bits of information out of the header (like invoice number, which warehouse, customer PO) and information out of the line items, and my intent is to populate a strongly typed dataset.

I think I could hard-code a parsing routine pretty easily, but I was hoping to have something like an XML file with parsing rules since the format may change in the future, and the format could be different from warehouse to warehouse - and with the parsing rules in an external XML file it's easy to change, and I could have different XML files to accomodate more than one format (especially if it ends up being someone not familiar with programming).
12:04:18                                                             23 OCT 2008

                     * * *   P I C K    T I C K E T   * * *        PAGE  1 OF  2

INVOICE NO. 123456            WAREHOUSE 12-A

    REF NO. 123456
 

CUST NO. 123456      PH                SALE TYPE WHLS/C
 

      SOLD TO:                            SHIP TO:

      DOE,JOHN                            DOE,JOHN

      123 MAIN ST                         123 MAIN ST

      METROPOLIS, US 12345-1234           METROPOLIS, US 12345-1234
 
 

PO NO. CUST-PO-HERE  SHIP VIA SHIP-METHOD-HERE

PC PART-NO................. Q.O. BIN..... O.H. DESC..............

PN                   123456    1      A12    5 TEST PART

PN                   789012    1      B34    5 ANOTHER TEST PART
 
 

--- Snip some unknown number of line items on page 1 --
 

12:04:18                                                             23 OCT 2008

                     * * *   P I C K    T I C K E T   * * *        PAGE  1 OF  2

INVOICE NO. 123456            WAREHOUSE 12-A

    REF NO. 123456
 

CUST NO. 123456      PH                SALE TYPE WHLS/C
 

      SOLD TO:                            SHIP TO:

      DOE,JOHN                            DOE,JOHN

      123 MAIN ST                         123 MAIN ST

      METROPOLIS, US 12345-1234           METROPOLIS, US 12345-1234
 
 

PO NO. CUST-PO-HERE       SHIP VIA SHIP-METHOD-HERE

PC PART-NO................. Q.O. BIN..... O.H. DESC..............

PN                   345678    1      C56      TEST

PN                   901234    1      D78      TEST

                             TOT PC    4

Open in new window

0
Comment
Question by:Todd Gerbert
  • 3
  • 3
6 Comments
 
LVL 6

Expert Comment

by:RishadanPort
Comment Utility
Seems to me that that file structure is unique, and you will have to create your own parsing routine
0
 
LVL 6

Expert Comment

by:RishadanPort
Comment Utility
looks pretty painful to generate something that will read an XML file to parse this, rather then write the parser itself
0
 
LVL 33

Author Comment

by:Todd Gerbert
Comment Utility
Agreed.

But, if the vendor supplying this data decides to change their format it would be much easier to just adjust my parsing rules XML file, as opposed to re-writing code - especially if I happen to not be at the same company (I don't want to leave solutions behind that they can't support without me).  Plus, then I'd have re-usable code.
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 33

Accepted Solution

by:
Todd Gerbert earned 0 total points
Comment Utility
I haven't found a simple solution, and I'm slightly disinclined to write my own grammar/compiler, so I've decided to go ahead and code a simple parsing routine in C#, but I've left that code in an external text file that's compiled at run-time - at least this way I can make adjustments fast, and maybe someone else besides me will stand a chance of tweaking it if need-be.
0
 
LVL 6

Expert Comment

by:RishadanPort
Comment Utility
gl in the future
0
 
LVL 33

Author Comment

by:Todd Gerbert
Comment Utility
Care to elaborate? ;)

(Sorry, only GL I know is graphics lib OpenGL)
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
SQl help with selection 14 44
Hide Tab Page 3 18
Trouble connecting to SqlServer database 4 29
Format column on datatable 7 14
We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

744 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

12 Experts available now in Live!

Get 1:1 Help Now