Выбор определенной строки в файле с помощью C++ . Помогите пожалуйста :)

программирование C++ C# fopen fread

Целый день вожусь с етим... никак не хотел сдесь писать, но пришлось.

Вроде бы толк не большой. Но мне это очень нужно.

Вот что надо сделать.

Есть файл server.cfg

-----------------------[СОДЕРЖАНИЕ ФАЙЛА]


echo Executing Server Config...
lanmode 0
rcon_password changemde
maxplayers 500
port 7777
hostname CEPBEP
gamemode0 timertest
announce 0
query 1
weburl www.pawno.ru
maxnpc 0
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000

-----------------------------------------------------------------

В нем надо выбрать строку port

и получить результат в переменную, которая при printf напишет число 7777.

Но учтите что порт будет менятся. По этому выбрать просто число 7777 нельзя... надо выбрать то что возле port.


Очень очень буду благодарен тому кто поможет !!!


На жаль я немогу предоставить пример кода как примерно я делал. Потому-что ниодин с вариантов небыл приблезительно тем что мне нужно :)


Вот я еще расчитывал найти int например GetStroka(файл,значение); т.е например GetStroka(pFile,"port");

но такого не нашел. на жаль...


Примечание:
=офтоп=
узнаю конфиг л2 сервера)
сервер что ли пишешь? или управлято

---------------------

нет.. это конфиг samp сервера. в ла2 никогда не играл о_О

я не пишу управлятора...мне надо просто узнавать порт сервера.

Примечание:
петя.... ты же говоришь шаришь на php.

там же функции по файлах тежи.

можешь подсказать на php я на c++ перепишу . иначе хз что придумать =(

Примечание:
Спасибо всем !!!

Вариант Blacklokky , оказался лучшим , т.к не сложны для понимания.

Хотя и вариант агронома тоже хороший.

Но продолжить работу я смог только с Blacklokky :)

Так-что спасибо еще раз вам обоим.

PS: ВОТ РЕЗУЛЬТАТ:

ifstream fin("server.cfg");
char str[40]="";
while(!fin.eof())
{
fin.getline(str,39);
if(!strncmp(str,"port",4))
{
printf("ПОРТ %s", str+5);
break;
}
}

функция хороша тем что ищет символ а не просто отступает 5 абзацов.

по скольку порт не всегда на шестом месте.


Респект всем !
Ответы:

Ссылки

[1]
INI Parser Library
(Web)
на пхп я бы так сделал
<?
function get_val($src,$name)
{
$f=fopen($src,"r");
$r=fread($f,filesize($src));
preg_match_all("^\n$name ([A-Za-z_0-9]*)^",$r,$out, PREG_PATTERN_ORDER);
if(!empty($out[1][0])){return $out[1][0];}else {return "null";};
}
Самый простой вариант
// Feel the power of C++.
#include <iostream>
#include <fstream>
#include <string>


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.