15.12.2010, 18:46
Не могу решить небольшую проблему. Имеется одна функция для считывания данных с массива, что стоят после знака = (взята из gf):
Мне понадобилось её немного усовершенствовать (может быть в этом и есть моя ошибка):
(то есть добавил параметр size, который указывает размер разбираемого массива)
Вот код для примера, в котором была использована эта функция:
(GetKey(data) тоже взята из gf)
Ну и в результате выходит вот такая ошибка:
Код:
stock GetValue(line[]) { new valRes[128]; valRes[0] = 0; if(strfind(line, "=", true) == -1) return valRes; strmid(valRes, line, strfind(line, "=", true) +1, strlen(line), sizeof(valRes)); return valRes; }
Код:
stock GetValue(line[], size) { new valRes[size]; valRes[0] = 0; if(strfind(line, "=", true) == -1) return valRes; strmid(valRes, line, strfind(line, "=", true) +1, strlen(line), sizeof(valRes)); return valRes; }
Вот код для примера, в котором была использована эта функция:
Код:
new test1[128], test2[128], test3[128]; new File:file = fopen("test.cfg", io_read), data[128]; while(fread(file, data, sizeof(data))) { StripNewLine(GetValue(data, sizeof(data))); // строка 1 if(strcmp(GetKey(data), "test1", true) == 0) { test1 = GetValue(data, sizeof(data)); } // строка 2 if(strcmp(GetKey(data), "test2", true) == 0) { test2 = GetValue(data, sizeof(data)); } // строка 3 if(strcmp(GetKey(data), "test3", true) == 0) { test3 = GetValue(data, sizeof(data)); } // строка 4 } fclose(file);
Ну и в результате выходит вот такая ошибка:
Код:
error 035: argument type mismatch (argument 1) <- строка 1 error 033: array must be indexed (variable "test1") <- строка 2 error 033: array must be indexed (variable "test2") <- строка 3 error 033: array must be indexed (variable "test3") <- строка 4