[1397] | 1 | #include "gsProfile.h"
|
---|
| 2 |
|
---|
| 3 | #include <stdio.h>
|
---|
| 4 | #include "stringArray.h"
|
---|
| 5 |
|
---|
| 6 | gsProfile::gsProfile(const char *fileName)
|
---|
| 7 | { this->fileName = fileName;
|
---|
| 8 | }
|
---|
| 9 |
|
---|
| 10 | bool gsProfile::ensureListMember(const char *sectionName, const char *listName,
|
---|
| 11 | const char *listMember)
|
---|
| 12 | { char buffer[256] = "\0";
|
---|
| 13 | stringArray *members;
|
---|
| 14 |
|
---|
| 15 | if (GetPrivateProfileString(sectionName, listName, "",
|
---|
| 16 | buffer, 256, this->fileName) <= 0)
|
---|
| 17 | { buffer[0] = '\0';
|
---|
| 18 | }
|
---|
| 19 | // add if needsbe
|
---|
| 20 | members = new stringArray(buffer, ";");
|
---|
| 21 | if (members->includes(listMember) == false)
|
---|
| 22 | { members->add(listMember);
|
---|
| 23 | members->writeToCString(buffer, ";", 256);
|
---|
| 24 | delete members;
|
---|
| 25 | return WritePrivateProfileString(sectionName, listName, buffer, this->fileName);
|
---|
| 26 | }
|
---|
| 27 | delete members;
|
---|
| 28 | return true;
|
---|
| 29 | }
|
---|
| 30 |
|
---|
| 31 | bool gsProfile::addListMember(const char *sectionName, const char *listName, const char *listMember)
|
---|
| 32 | { char buffer[256];
|
---|
| 33 | stringArray *members;
|
---|
| 34 |
|
---|
| 35 | GetPrivateProfileString(sectionName, listName, "",
|
---|
| 36 | buffer, 256, this->fileName);
|
---|
| 37 | // straightforward, unthinking, add
|
---|
| 38 | members = new stringArray(buffer, ";");
|
---|
| 39 | members->add(listMember);
|
---|
| 40 | members->writeToCString(buffer, ";", 256);
|
---|
| 41 | delete members;
|
---|
| 42 | return WritePrivateProfileString(sectionName, listName, buffer, this->fileName);
|
---|
| 43 | }
|
---|
| 44 |
|
---|
| 45 | bool gsProfile::removeListMember(const char *sectionName, const char *listName, const char *listMember)
|
---|
| 46 | { char buffer[256];
|
---|
| 47 | stringArray *members;
|
---|
| 48 |
|
---|
| 49 | GetPrivateProfileString(sectionName, listName, "",
|
---|
| 50 | buffer, 256, this->fileName);
|
---|
| 51 | // straightforward, unthinking, removal - if it isn't there, we won't need to
|
---|
| 52 | // worry!
|
---|
| 53 | members = new stringArray(buffer, ";");
|
---|
| 54 | members->remove(listMember);
|
---|
| 55 | members->writeToCString(buffer, ";", 256);
|
---|
| 56 | delete members;
|
---|
| 57 |
|
---|
| 58 | return WritePrivateProfileString(sectionName, listName, buffer, this->fileName);
|
---|
| 59 | }
|
---|
| 60 |
|
---|
| 61 | bool gsProfile::writeString(const char *sectionName, const char *itemName, const char *itemValue)
|
---|
| 62 | { if (!WritePrivateProfileString(sectionName, itemName, itemValue, this->fileName))
|
---|
| 63 | { DWORD error = GetLastError();
|
---|
| 64 | char buffer[20];
|
---|
| 65 | sprintf(buffer, "%lx", error);
|
---|
| 66 | MessageBox(0, buffer, "", MB_OK);
|
---|
| 67 | }
|
---|
| 68 | return true;
|
---|
| 69 | } |
---|