Save array

Материал из UoPilot
Версия от 11:08, 28 августа 2019; Tatikoma (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Описание

Save array - сохранение массива в файл. Иногда требуется запускать UoPilot от администратора.

Синтаксис

Привязка к окну: нет.
Работа со свернутым окном: да.

save_array <%array> [#array_x] [#array_y] [#count_x] [#count_y] [$filename]

Где:
%array - массив, который нужно сохранить.
[#array_x #array_y] - начальные координаты, если нужно сохранить массив не сначала.
[#count_x #count_y] - количество столбцов и строк для сохранения.
[$filename] - путь к файлу для сохранения

Массивы сохраняются в виде [строка, столбец]. Элементы массива отделены друг от друга символом с кодом #9 (Tab).

Примеры

// Пример 1
set %arr [1 1] 11
set %arr [1 2] 22
set %arr [2 1] 33
set %arr [2 2] 44
save_array %arr C:\123abc.txt    //сохранить весь массив в файле 123abc.txt на диске С:
End_script
// Пример 2
set %arr [1 1] 11
set %arr [1 2] 22
set %arr [2 1] 33
set %arr [2 2] 44
save_array %arr 2 C:\123abc.txt    //сохранить массив начиная со второй строки
End_script
// Пример 3
set %arr [1 1] 11
set %arr [1 2] 22
set %arr [2 1] 33
set %arr [2 2] 44
save_array %arr 1 2 C:\123abc.txt    //сохранить массив начиная со второго столбца
End_script

Создание лога с помощью массива.

set #q 2
set %logs[1 1] The time
set %logs[1 2] Ресурс
set %logs[1 3] Кол-во
set %logs[1 4] Добыто?
set %logs[#q 1] $time
set %logs[#q 2] $s
set %logs[#q 3] $s1
set %logs[#q 4] $s2  
save_array %logs c:\logs\resource.txt

1 разряд массива - это столбец
2 разряд массива - это строка

Из примера выше получается примерно вот так:

The time		Ресурс		Кол-во		Добыто?	
18 17 09		Ртуть		5			Да

Самое важное - можно легко скопировать в exel и получить всё в нужных столбцах.

А если хотим чтобы постоянно добавлялись новые строки, а не перезаписывались, то добавляем set #q 1 в шапку и #q + 1 в тело скрипта.

set #q 1
//+++++++++++++++++++++++++
while 1 = 1
   set #q #q + 1
   set %logs[1 2] Ресурс
   set %logs[1 3] Кол-во
   set %logs[1 4] Добыто?
   set %logs[#q 1] $time
   set %logs[#q 2] $s
   set %logs[#q 3] $s1
   set %logs[#q 4] $s2  
   save_array %logs c:\logs\resource.txt
end_while

Смотрите также

Массивы
Load_array
Init arr
Sort array
Get scripts

История развития

2.11
Добавил возможность сохранять массивы в файл.

save_array <%array> [#array_x] [#array_y] [#count_x] [#count_y] [$filename]

По-умолчанию сохраняются в каталоге со скриптами. Отсутствовать может любое количество операндов, начиная с конца, до имени массива. Последний из оставшихся операндов считается именем файла, им может являться имя массива. Массивы хранятся в виде [строка, столбец]. Элементы массива отделены друг от друга символом с кодом #9 (tab).

2.35
Добавил в команды 'save_array' и 'load_array' проверку на занятость файла другими скриптами. Ждут пока не освободится.