Best way to update a settings file?

Discussion in 'Python' started by John Salerno, Apr 14, 2008.

  1. John Salerno

    John Salerno Guest

    I'm thinking about writing a small script that will update an xml file
    with whatever game settings the user enters. I imagine that the user
    will have a single-screen GUI application with several different
    settings, like this:

    CROSSHAIRS ON
    LOCATION ON
    HEALTHBAR OFF
    etc.....

    These settings will somehow be toggleable with an ON/OFF button, or
    something.

    Anyway, I can think of two ways to do this:

    1. After the user chooses his settings and clicks the Save button,
    Python reads all the settings from the GUI application and updates
    *every* entry in the xml file (whether it has changed or not).

    2. After the user chooses his settings and clicks the Save button,
    Python reads all the settings from the GUI application, compares these
    settings to those in the xml file, and updates only the ones that have
    been changed.

    Now, #2 seems, at first glance, like the more efficient option, because
    you are only updating what needs to be updated, and leaving the rest alone.

    However, I wonder if the extra step of comparing all the settings from
    the user input and the xml file will end up taking longer than just
    simply rewriting all the settings.

    Probably neither method will take much longer than the other, but I'm
    asking more from a good design/efficiency standpoint. Which of these two
    methods is the better way, or is there perhaps another way I'm not
    thinking of?

    Thanks!
     
    John Salerno, Apr 14, 2008
    #1
    1. Advertising

  2. John Salerno

    John Nagle Guest

    John Salerno wrote:
    > I'm thinking about writing a small script that will update an xml file
    > with whatever game settings the user enters. I imagine that the user
    > will have a single-screen GUI application with several different
    > settings, like this:
    >
    > CROSSHAIRS ON
    > LOCATION ON
    > HEALTHBAR OFF
    > etc.....
    >
    > These settings will somehow be toggleable with an ON/OFF button, or
    > something.
    >
    > Anyway, I can think of two ways to do this:
    >
    > 1. After the user chooses his settings and clicks the Save button,
    > Python reads all the settings from the GUI application and updates
    > *every* entry in the xml file (whether it has changed or not).
    >
    > 2. After the user chooses his settings and clicks the Save button,
    > Python reads all the settings from the GUI application, compares these
    > settings to those in the xml file, and updates only the ones that have
    > been changed.


    You can't write into the middle of an XML file effectively; any field
    that has changed length won't fit. You generally have to create a new
    XML file.

    Read this on how to replace a file with a new one, as an atomic operation:

    http://blogs.msdn.com/adioltean/archive/2005/12/28/507866.aspx

    If you really want to update files in place, use a database, like
    SQLite. If you find yourself rewriting big files for minor changes,
    switch to a database. For small files, just rewrite the whole thing.

    John Nagle
     
    John Nagle, Apr 14, 2008
    #2
    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. Max
    Replies:
    2
    Views:
    445
  2. Siegfried Heintze
    Replies:
    0
    Views:
    2,278
    Siegfried Heintze
    Oct 24, 2005
  3. leeanne
    Replies:
    0
    Views:
    1,871
    leeanne
    Sep 24, 2008
  4. donet programmer
    Replies:
    3
    Views:
    1,548
    Gregory A. Beamer
    Nov 20, 2009
  5. Bucco
    Replies:
    6
    Views:
    152
    Bill Guindon
    Jul 9, 2005
Loading...

Share This Page