Вы должны войти, чтобы создавать сообщения и темы.

Как обратиться к определенному значению в строке?

Здравствуйте!
Есть текстовик, в котором все значения написаны в одну строку. Мне нужно каким-то образом обратиться к "token_gid" и скопировать его значение, которое идет после двоеточия. До account_name есть еще куча значений, которые в каждом отдельном текстовике различаются по кол-ву символов, поэтому не получится отступить определенное кол-во символов от начала файла и скопировать его.

Заранее огромное спасибо за помощь!

Приветствую, это видео должно помочь разобраться в вопросе.

Добрый день.
Это фрагмент или строка так и начинается? Это очень похоже на JSON. Если так, то можно конечно изобретать велосипед через регулярные выражения и т.д., но для этого есть специализированные классы для работы с форматом.

Огромное спасибо, посмотрел про регулярные выражения и получилось.

Adler, нет, это был не JSON формат, так что там никак иначе, кроме как через регулярные выражения не получилось бы 🙂

Цитата: noname от 02.12.2020, 23:39

Огромное спасибо, посмотрел про регулярные выражения и получилось.

Adler, нет, это был не JSON формат, так что там никак иначе, кроме как через регулярные выражения не получилось бы 🙂

Добрый день.
Судя по этому, то речь о Steam WebAPI, то это как раз JSON. И если не сама цель изобрести велосипед написать какую то свою реализацию C# Steam WebAPI, то есть готовые реализации WebAPI или Steamworks API.

Цитата: noname от 02.12.2020, 01:53

Здравствуйте!
Есть текстовик, в котором все значения написаны в одну строку. Мне нужно каким-то образом обратиться к "token_gid" и скопировать его значение, которое идет после двоеточия. До account_name есть еще куча значений, которые в каждом отдельном текстовике различаются по кол-ву символов, поэтому не получится отступить определенное кол-во символов от начала файла и скопировать его.

Заранее огромное спасибо за помощь!

Можно так если строка константа

string line = ":xxxxxx:token_gid:22326546564564656:yyyy:"; 
string gid = line.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries)[2]; 
MessageBox.Show("token_gid - " + gid);

А лучше как Вам уже сказали, использовать парсер json

Добрый день, @anomal3

Так это не сработает, т.к. между одним [key]:[value] и следующим [key]:[value] находится запятая (,).

Цитата: Adler от 04.12.2020, 14:43

Добрый день, @anomal3

Так это не сработает, т.к. между одним [key]:[value] и следующим [key]:[value] находится запятая (,).

И Вам добрый день. А так?

string line = textBox1.Text;
string gid = line.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries)[2].Split(new char[] { '"' }, StringSplitOptions.RemoveEmptyEntries)[0];
MessageBox.Show("token_gid - " + gid);

https://yadi.sk/d/IByUN2wNYeXK_g
Пример который работает

p.s. забыл что там ковычки идут))