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

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

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

> Без описания
konctantin777
Отправлено: 16 Февраля, 2023 - 18:49:59
Post Id



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


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Здравствуйте.
Задача сохранить массив в файл, чтобы при следующем запуске кибора, загрузить обратно в массив X_итог[n] и Y_итог[n].

записываю так:
CODE:
if (fopen ("c:\!123.txt", "w")!=0)
{

for (n=0; n<500; n++)
{
fwrite(X_итог[n]); fwrite(";"); fwrite(Y_итог[n]); fwrite(ENDL);
}
fwrite(ENDL);

fclose();
}


Не понял как реализовано тут:
CODE:
string text[1000]; // файл не должен превышать 1000 строк

if (fopen("C:\Users\abc\Desktop\111.txt", "r")!=0) // если файл открылся
{
for(int i=0; freadline(text[i])!=0; i++){} // читаем по строке до конца файла
fclose(); // закрываем файл

// массив text содержит весь файл
messagebox("Первая строка: "+text[0]);
messagebox("Вторая строка: "+text[1]);
messagebox("Пятая строка: "+text[4]); // пятая строка
int num=formatsn(text[4]); // переводим строку в число и присваиваем переменной num
messagebox(num);
}

Как при следующем запуске, получить, то что сохранил ?
(Добавление)
Или лучше будет 2 файла отдельно сохранять и загружать по отдельности с freadlineall?
CODE:
string slovar[500];
int k;

if (fopen ("C:\russian.txt", "r")!=0)
{
k=freadlineall(#slovar[0], 100);
fclose();
}
messagebox (k);

for (int n=0; n<k; n++)
{
messagebox (slovar[n]);
}
 
 Top
OKStyle
Отправлено: 16 Февраля, 2023 - 20:10:02
Post Id



Пользователь
Участник


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




Тебе нужно сохранить в один файл обе информации.
Сохранил первые 500 строк Х_Итог, вторые 500 строк У_Итог.

В итоге, считываешь с помощью freadlineall всю информацию.
В таком же порядке и считываешь. Не вижу проблем, можно спокойно использовать. (Единственное, ты должен знать сколько строк записываешь, чтобы понимать что и где будет загружено)

(Отредактировано автором: 16 Февраля, 2023 - 20:12:58)

 
 Top
konctantin777
Отправлено: 16 Февраля, 2023 - 21:41:23
Post Id



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


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Хммм... Т.е. узнать количество, разделить на два и так узнать 1й и 2й параметр ?
 
 Top
Zireael
Отправлено: 17 Февраля, 2023 - 01:45:25
Post Id



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


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




Сохранить массив:
CODE:
int x[500], y[500];
x[0]=10; y[0]=111;
x[1]=20; y[1]=222;
x[2]=30; y[2]=333;
x[3]=40; y[3]=444;


if(fopen ("D:\123.txt", "w")!=0)
{
int _size = sizearray(x);
for (int i=0; i<_size; i++)
{
fwrite(x[i]); fwrite(";"); fwrite(y[i]); fwrite(ENDL);
}
fclose();
}

Загрузить массив:
CODE:
int x[500], y[500];
string temp[500];
string num[2];

if (fopen ("D:\123.txt", "r")!=0)
{
int k=freadlineall(#temp[0], sizearray(x)); fclose();

for (int i=0; i<k; i++)
{
regexsearch(2, #num[0], temp[i], "[^;]+");
x[i] = formatsn(num[0]);
y[i] = formatsn(num[1]);
}

messagebox (format(x[0])+"^t"+format(y[0]));
messagebox (format(x[1])+"^t"+format(y[1]));
}

(Отредактировано автором: 17 Февраля, 2023 - 01:46:32)

 
 Top
konctantin777
Отправлено: 17 Февраля, 2023 - 07:48:37
Post Id



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


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




OKStyle , Zireael , Спасибо! )
 
 Top
konctantin777
Отправлено: 22 Февраля, 2023 - 14:23:52
Post Id



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


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




 Zireael пишет:
Загрузить массив:

Подскажите как правильно тут регулярку сделать если в строчке может быть и одно число и 3 и 4 ?
(Добавление)
Т.е. строка может содержать: "Моб; коорд Х; коорд У; атаковать ли". Разделители ";" всегда 3шт есть

(Отредактировано автором: 22 Февраля, 2023 - 14:26:07)

 
 Top
Zireael
Отправлено: 22 Февраля, 2023 - 22:56:42
Post Id



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


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




Нужны примеры строк и что из них нужно получить.
 
 Top
konctantin777
Отправлено: 22 Февраля, 2023 - 23:06:50
Post Id



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


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Строка "Моб; коорд Х; коорд У; атаковать ли". Нужно получить название, координаты, примечание. Так думаю в 4 массива записать и смотреть по необходимости нужное значение.
 
 Top
Zireael
Отправлено: 22 Февраля, 2023 - 23:36:18
Post Id



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


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




CODE:
string result[4];
string text = "Моб; коорд Х; коорд У; атаковать ли";

int count = regexsearch(4, #result[0], text, "[^;]+");
messagebox("Найдено совпадений: "+format(count));
for(int i=0; i<count; i++)
{
regexreplace(-1, #result[i], result[i], "^\s+|\s+$", ""); // удалить пробелы в начале и конце строки
messagebox(result[i]);
}
 
 Top
konctantin777
Отправлено: 22 Февраля, 2023 - 23:40:35
Post Id



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


Покинул форум
Сообщений всего: 1152
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Zireael , Спасибо !!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 5 (гостей: 5, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by