Best way to update a settings file?

J

John Salerno

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!
 
J

John Nagle

John said:
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
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,225
Members
46,815
Latest member
treekmostly22

Latest Threads

Top