PDA

Просмотр полной версии : [Вопрос] чтение файла



Unreal
19.09.2015, 20:59
Всем привет, прошу помочь написать мини код для чтение инфы.
Допустим я хочу чтобы сервер прочитал название сервера из файла и написал в SendRconCommand.

ну думаю вы поняли суть, и пожалуйста функция должна быть без инородных include'ов иди функций. (fread)
Пример файла:


servername = SA-MP 0.3.7
serverwebsite = forum

Спасибо

L0ndl3m
19.09.2015, 22:11
static const
some_file_path[] = "some_file.ini";

if(fexist(some_file_path))
{
new
temp_str[64],
buf[64],
File: test_file = fopen(some_file_path, io_read);

if(test_file != File: 0)
{
while(fread(test_file, buf))
{
if(strcmp(buf, "servername", true, 10) == 0)
{
strmid(temp_str, buf, strfind(buf, " = ") + 3, sizeof(temp_str));
strins(temp_str, "hostname ", 0);
SendRconCommand(temp_str);
continue;
}
if(strcmp(buf, "serverwebsite", true, 13) == 0)
{
strmid(temp_str, buf, strfind(buf, " = ") + 3, sizeof(temp_str));
strins(temp_str, "weburl ", 0);
SendRconCommand(temp_str);
continue;
}
}
}
fclose(test_file);
}

Unreal
19.09.2015, 22:25
static const
some_file_path[] = "some_file.ini";

if(fexist(some_file_path))
{
new
temp_str[64],
buf[64],
File: test_file = fopen(some_file_path, io_read);

if(test_file != File: 0)
{
while(fread(test_file, buf))
{
if(strcmp(buf, "servername", true, 10) == 0)
{
strmid(temp_str, buf, strfind(buf, " = ") + 3, sizeof(temp_str));
strins(temp_str, "hostname ", 0);
SendRconCommand(temp_str);
continue;
}
if(strcmp(buf, "serverwebsite", true, 13) == 0)
{
strmid(temp_str, buf, strfind(buf, " = ") + 3, sizeof(temp_str));
strins(temp_str, "weburl ", 0);
SendRconCommand(temp_str);
continue;
}
}
}
fclose(test_file);
}


спасибо вам большое, а что за функция strins
и можно ли еще 1 способ записать файлы на

mysql_connect(host, user, db, pass);

L0ndl3m
19.09.2015, 22:32
Strins. В общем, вставляет строку в другую строку, причём позицию вставки вы можете указать в 3 аргументе. Если хотите вставить строку в самое начало другой строки, то третий аргумент функции должен быть равен 0 ( как в моём коде ).

Честно говоря, я с базами данных до сих пор не работал.

С базами данных можно проделать тоже самое, что и с файлами.

Если будут новые вопросы по файлам, создавайте новую тему в данном разделе и мы обязательно вам ответим.

Unreal
19.09.2015, 22:35
Strins. В общем, вставляет строку в другую строку, причём позицию вставки вы можете указать в 3 аргументе. Если хотите вставить строку в самое начало другой строки, то третий аргумент функции должен быть равен 0 ( как в моём коде ).

Честно говоря, я с базами данных до сих пор не работал.

С базами данных можно проделать тоже самое, что и с файлами.

Если будут новые вопросы по файлам, создавайте новую тему в данном разделе и мы обязательно вам ответим.
спасибо, понял

$continue$
19.09.2015, 22:45
спасибо вам большое, а что за функция strins
и можно ли еще 1 способ записать файлы на

mysql_connect(host, user, db, pass);
В смысле?

Unreal
19.09.2015, 23:17
В смысле?

я вот покодил, не получилось


if(fexist("dbset.ini")){
new buf[64],File: file = fopen("dbset.ini", io_read);
if(file != File: 0)
{
while(fread(file, buf))
{
if(strcmp(buf, "host", true, 10) == 0){
strmid(info[0], buf, strfind(buf, " = ") + 3, sizeof(info));
printf(info[0]);
continue;
}
if(strcmp(buf, "user", true, 13) == 0){
strmid(info[1], buf, strfind(buf, " = ") + 3, sizeof(info));
printf(info[1]);
continue;
}
if(strcmp(buf, "password", true, 13) == 0){
strmid(info[2], buf, strfind(buf, " = ") + 3, sizeof(info));
printf(info[2]);
continue;
}
if(strcmp(buf, "database", true, 13) == 0){
strmid(info[3], buf, strfind(buf, " = ") + 3, sizeof(info));
printf(info[3]);
continue;
}
}
}
fclose(file);
}



host = localhost
user = unreal_user
password = netw@ars_123p
database = unreal_db

L0ndl3m
19.09.2015, 23:57
if(strcmp(buf, "host", true, 10) == 0)
Не 10, а 4. Когда создаёте новую проверку, то вписываете после аргумента true длину слова ( в данном случае "host" - 4 символа ).