write to output file query

Discussion in 'C++' started by jeff_zhang446@yahoo.com, Sep 1, 2005.

  1. Guest

    Hi,
    I try to write some data structure into a file as below and would
    appreciate if someone can give me some advice here.

    The output file looks like below:

    row(1) 100 1 0 0 0 0 0 0 0 1
    row(2) 150 5 0 0 0 0 0 0 0 2
    row(3) 160 7 0 0 0 0 0 0 0 3

    row(4) 100, 160.0, 120.0,100.0, 1
    row(5) 1, 0, 12, 12, 12, 12, 12, 2
    row(6) 0.0, 1.0, 1.5, 1.8, 2.0 3
    row(7) 1, 1, 1, 1, 1, 1; 4
    row(8) 150, 98.0, 25.0, 56.0, 5
    row(9) 0.8, 0.8, 0.9, 10, 12, 15, 6
    row(10) 2.6, 8.7, 8.9, 6.5, 7.9; 7
    row(11) 160, 46.0, 67.0, 86.0, 8
    row(12) 5.8, 9..0, 7.6, 23, 45, 67; 9

    note:row(i) - for reference only and will not be included in the output
    file.

    There are :
    1. two categories in the file: row1-row3 and row4-row11.
    2. 3 types here: 100 (row1), 150(row2) and 160(row3).
    3. the last column of each of the line refers to the row number that
    print on the file.
    4. 2nd column of row(1)- row(3) is the row number as in(3) relate to
    its type in category 2.
    Eg: 2nd column type 100 in row(1) =1, which is same as the last
    column value as in row(4).
    2nd column type 150 in row(2) =5, which is same as the last
    column value as in row(8)

    I store my data in a link list.
    list - type100
    - type150
    - type160
    A. First I read the type100 and write part of the info in row(1).
    Then I need to jump to category 2 to continue writing the other info
    relate to it (row(4) tp row(7)).

    B. I jump back to row(2) working on type150. From (A), I know that the
    value I am going to print for the column2 is 5. Continue writing the
    info, jump to category 2....

    C. same as above.

    I wonder how actually can I jump up and down writing all the info into
    a file?

    In what way I can do that? More importantly I do not how many lines I
    need for each type in category 2.

    thank you

    jeff
     
    , Sep 1, 2005
    #1
    1. Advertising

  2. mlimber Guest

    wrote:
    > Hi,
    > I try to write some data structure into a file as below and would
    > appreciate if someone can give me some advice here.
    >
    > The output file looks like below:

    [snip]
    > I wonder how actually can I jump up and down writing all the info into
    > a file?
    >
    > In what way I can do that? More importantly I do not how many lines I
    > need for each type in category 2.


    Well, it might be best to change your file format to something easier
    to use, but if that's not an option, then you could write the first
    "header" info (row 1), write bogus data for the missing header info
    (rows 2 and 3), then write the rest of the data associated with row 1.
    Then, use ostream::seekp() to jump backwards in the file to row 2,
    write the row 2 header, jump to the end of the file, and write the rest
    of the data associated with row 2. Etc. Etc.

    For more on ostream::seekp(), see
    http://www.cplusplus.com/ref/iostream/ostream/seekp.html.

    Cheers! --M
     
    mlimber, Sep 1, 2005
    #2
    1. Advertising

  3. wrote:
    >

    [snip]
    >
    > I wonder how actually can I jump up and down writing all the info into
    > a file?


    Well.
    I would build up a second data structure, with the only purpose
    to collect the data as it needs to be printed.

    Then some algorithm builds up that structure and can modify or append
    in that data structure in any way it wants to (or needs to).

    Only after that, this data structure holds the complete data in a way
    that is easy to write to the file without the need to 'jump around'
    in the actual data. Everything has already been processed and 'flattened'
    out, such that the actual file write is nothing more then a few loops
    and write instructions.

    --
    Karl Heinz Buchegger
     
    Karl Heinz Buchegger, Sep 1, 2005
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Joel Finkel
    Replies:
    1
    Views:
    3,577
    Joel Finkel
    Aug 15, 2003
  2. G
    Replies:
    0
    Views:
    413
  3. Replies:
    1
    Views:
    277
    =?iso-8859-1?Q?Ali_=C7ehreli?=
    Sep 7, 2005
  4. Iulian Ilea
    Replies:
    1
    Views:
    345
    pcx99
    Dec 21, 2006
  5. Tim Chase
    Replies:
    0
    Views:
    107
    Tim Chase
    Dec 16, 2013
Loading...

Share This Page