- #include <fstream>
- #include <iostream>
- #include <string>
- int getNameValue(char *name, char *value)
- {
- std::ifstream file;
- std::string buf, bufFromFile, beginName, endName;
- int begin, end;
- if (name == NULL || value == NULL) {
- std::cout << "name and value is invalid" << std::endl;
- exit(1);
- }
- beginName.append("<");
- beginName.append(name);
- beginName.append(">");
- endName.append("</");
- endName.append(name);
- endName.append(">");
- file.open("MyIp.config");
- if (!file.is_open()) {
- std::cout << "error in open file ";
- exit(1);
- }
- while (!file.eof()) {
- file >> bufFromFile;
- buf += bufFromFile;
- }
- file.close();
- std::cout << buf << std::endl;
- begin = buf.find(beginName);
- end = buf.find(endName);
- //std::cout << begin << " " << end << std::endl;
- if (begin < 0 || end < 0) {
- std::cout << "can't find " << name << " Item" << std::endl;
- exit(1);
- }
- if (begin >= end) {
- std::cout << "error in find " << name << " Item" << std::endl;
- exit(1);
- }
- for (int i = 0; i < end - begin - beginName.length(); i++) {
- value[i] = buf.at(begin + beginName.length() + i);
- }
- value[end - begin - beginName.length()] = '\0';
- }
- int main(int argc, char* argv[])
- {
- char *name = "IP";
- char *value = NULL;
- int port;
- value = new char[100];
- getNameValue(name, value);
- }