Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Считывание "куска" строки из txt файла

Страниц (1): [1]
 

1. Duat - 14 Февраля, 2020 - 14:00:33 - перейти к сообщению
Добрый вечер.
Подскажите, как можно считывать только часть строки из текстового файла?
Необходимые значения, которые нужно считать выделил красным.
Также, эти значения всегда находятся после первой запятой.
В описаниях функций нашел только как считать целую строку..(
Содержимое файла, с которого нужно считать: (Отобразить)
2. Zireael - 14 Февраля, 2020 - 16:39:09 - перейти к сообщению
CODE:
string path="C:\test.txt"; // путь к файлу
char text[999999];
string temp, s[999];

if(fopen(path, "rb")) // если открылся
{
int count_symbol=freadb(#text[0], sizearray(text)) - 1; fclose();// прочитать файл и закрыть его

regexreplace(-1, #temp, format(#text[0], count_symbol), "^\d+,([\d ]+).*$", "$1", MULTILINE); // оставить только числа после первой запятой
messagebox(temp);
int result=regexsearch(sizearray(s), #s[0], temp, "^.*$", MULTILINE); // разбить строку в массив
for(int i=0; i<result; i++)messagebox(s[i]);
}
else messagebox("Файл не найден");
3. Duat - 14 Февраля, 2020 - 16:46:43 - перейти к сообщению
 Zireael пишет:
CODE:
string path="C:\test.txt"; // путь к файлу
char text[999999];
string temp, s[999];

if(fopen(path, "rb")) // если открылся
{
int count_symbol=freadb(#text[0], sizearray(text)) - 1; fclose();// прочитать файл и закрыть его

regexreplace(-1, #temp, format(#text[0], count_symbol), "^\d+,([\d ]+).*$", "$1", MULTILINE); // оставить только числа после первой запятой
messagebox(temp);
int result=regexsearch(sizearray(s), #s[0], temp, "^.*$", MULTILINE); // разбить строку в массив
for(int i=0; i<result; i++)messagebox(s[i]);
}
else messagebox("Файл не найден");


А если там могут быть не только числа, но и слова?)
4. Zireael - 14 Февраля, 2020 - 17:15:29 - перейти к сообщению
 Цитата:
А если там могут быть не только числа, но и слова?)

Лучше сразу писать что там может быть, чтобы не исправлять каждый раз.
Найдет любой текст между запятыми:
CODE:
string path="C:\test.txt"; // путь к файлу
char text[999999];
string temp, s[999];

if(fopen(path, "rb")) // если открылся
{
int count_symbol=freadb(#text[0], sizearray(text)) - 1; fclose();// прочитать файл и закрыть его

regexreplace(-1, #temp, format(#text[0], count_symbol), "^\d+,([^,]+).*$", "$1", MULTILINE); // оставить только числа после первой запятой
messagebox(temp);
int result=regexsearch(sizearray(s), #s[0], temp, "^.*$", MULTILINE); // разбить строку в массив
for(int i=0; i<result; i++)messagebox(s[i]);
}
else messagebox("Файл не найден");

Powered by ExBB FM 1.0 Final