Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Без описания
Duat
Отправлено: 14 Февраля, 2020 - 22:00:33
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 39
Дата рег-ции: Окт. 2018  
Репутация: 0




Добрый вечер.
Подскажите, как можно считывать только часть строки из текстового файла?
Необходимые значения, которые нужно считать выделил красным.
Также, эти значения всегда находятся после первой запятой.
В описаниях функций нашел только как считать целую строку..(
Содержимое файла, с которого нужно считать: (Отобразить)
 
 Top
Zireael
Отправлено: 15 Февраля, 2020 - 00:39:09
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017  
Репутация: 585




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("Файл не найден");
 
 Top
Duat
Отправлено: 15 Февраля, 2020 - 00:46:43
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 39
Дата рег-ции: Окт. 2018  
Репутация: 0




 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("Файл не найден");


А если там могут быть не только числа, но и слова?)
 
 Top
Zireael
Отправлено: 15 Февраля, 2020 - 01:15:29
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
А если там могут быть не только числа, но и слова?)

Лучше сразу писать что там может быть, чтобы не исправлять каждый раз.
Найдет любой текст между запятыми:
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("Файл не найден");
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by