Convert csv file into html file

Assignment Help Computer Engineering
Reference no: EM131651

The comma-separated values (CSV) file format is a delimited data format, commonly used as a portable representation of database-type data. Files of CSV format have fields separated by the comma character and records separated by newlines. For this programming assignment, you are going to use flex to write a converter that transforms any legal CSV file into an HTML table.

We will use the following rules extracted from RFC 4180 (https://tools.ietf.org/html/rfc4180) to define CSV:

1. Each record is located on a separate line, delimited by a line break (\n). For example:

Name,Birth Date,Career Titles,Highest Ranking\n
Agassi,04/29/1970,60,No. 1\n

2. Within each record, there may be one or more fields, separated by commas. Each line should contain the same number of fields throughout the file. Spaces are considered part of a field and should not be ignored. Empty fields are allowed. The last field in the record must not be followed by a comma. For example:

Name,Birth Date,Career Titles,Highest Ranking\n
Becker,06/16/1981,,No. 112\n

3. Each field may or may not be enclosed in double quotes. If fields are enclosed with double quotes, there is no space between double quotes and commas or line breaks.

For example:

Name,Birth Date,Career Titles,Highest Ranking\n
Agassi,"04/29/1970",60,"No. 1"\n

4. Fields containing line breaks (\n), double quotes, and commas must be enclosed in double-quotes. For example:

Name,Birth Date,Career Titles,Highest Ranking\n
"Agassi, Andre",04/29/1970,60,"No. 1\n

5. A double-quote appearing inside a field must be escaped by preceding it with another double quote. For example:

"Peter ""Pete"" Sampras",08/12/1971,64,No. 1\n

For this assignment, you will use flex to compose a format converter. For any legal CSV file, your converter should translate it to an HTML file containing a single table. The specific requirements are:

1. Each field in the CSV file corresponds to a single cell of the HTML table, enclosed by <td> and </td>.

2. Each record in the CSV file corresponds to a single row of the HTML table, enclosed by <tr> and </tr>.

3. Double quotes that are used to enclose a field should be eliminated and not appear in the generated HTML table.

4. Any double-quote inside a field should be reserved, but the one preceding it as an escape operator should be eliminated.

5. Any line break (\n) inside a field should be converted to a <br> in the HTML file.

6. If the < or > characters occur as part of the data, they should be translated into the strings &lt; and &gt; respectively. This will prevent data that looks like an HTML tag from acting like one.

7. All other content inside a field should be directly copied into the HTML table.

8. If the field is empty, you should enter the character &nbsp; (non-breaking space) in the HTML table cell. Empty cells do not display neatly in HTML tables.

9. You will need to generate additional tags to complete the HTML table (<table> and </table>). Also, the generated HTML table must have visible borders around each table cell. For example, use <table border=3> to set the table border to be 3 pixels.

10. Other HTML tags (<html></html>, <body></body>) are optional.

11. You can assume all input files are legal CSV files defined as above and there is no need to report any illegal input.

12. The converter should read its input from stdin and write to stdout. This is already the default in flex. For example, you should be able to type %mycsv2html <inputfile >outputfile to dump the generated table into outputfile. You can then check the generated HTML file by opening it by a web browser.

For information on Lex and Yacc, look at the Niemann book which is linked to from the texts page, and there are additional links in a folder dedicated to this topic.

Reference no: EM131651

Questions Cloud

Methods : Assignment describe the basic working of methods. How to write a method in java and how to call a method.
Loops and files : Convert an algorithm using control structures into Java and write a while loop
Explain the median housing price in a community : Explain the median housing price in a community
Top-down recursive descent parser : Write a hand-coded top-down recursive descent parser.
Convert csv file into html file : Convert CSV file into HTML file
Planning strategies for the audit : Planning strategies for the audit
Research paper:soloman v soloman and co. : Complete and annex the Self and Peer Assessment.
Evaluate net investment : What is the net investment in the truck project?
The corporate finance project : The debt or equity ratio from I-Metrix is based on book values. If you were to evaluate the ratio on the basis of market values, could this ratio tend to be higher or lower than on the basis of book values?

Reviews

Write a Review

Computer Engineering Questions & Answers

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd