我的表格中有一个文件:
PROPERTY1=VALUEX
PROPERTY2=VALUEY
...
我想写一个这样的函数:
int find_property(char* file_contents, char* property_name, char* value)
将文件的内容作为char *,然后找到该属性并将其值赋给char * value。如果找到属性,显然会返回0,如果没有,则返回1.
我希望能够做到这样的事情:
char file_contents[500];
char* property = "PROPERTY1";
char value[500];
load_file_contents("file.txt", file_contents);
if(find_property(file_contents, property, value) == 1){
// Do something with 'value'
}
我将如何做到这一点?
答案 0 :(得分:0)
我用'$'字符终止了文件,这有效:
char c = file_contents[0];
char property_name[100] = {};
char value[100] = {};
int in_property = 1;
int in_value = 0;
int i = 0;
int t = 0;
while(c != '$'){
if(c == '='){
in_property = 0;
in_value = 1;
property_name[i] = '\0';
i = 0;
// continue;
} else if(c == '\n'){
in_property = 1;
in_value = 0;
value[i] = '\0';
if(strcmp(property_name, property) == 0){
sprintf(result, value);
return;
}
i = 0;
} else if(in_property == 1){
property_name[i] = c;
i++;
} else if(in_value == 1){
value[i] = c;
i++;
}
t++;
c = file_contents[t];
}