7.5 Чтение/сохранение данных

Команда MGL: read DAT 'fname'
Команда MGL: read REDAT IMDAT 'fname'
Метод класса mglData: bool Read (const char *fname)
Метод класса mglDataC: bool Read (const char *fname)
Функция С: int mgl_data_read (HMDT dat, const char *fname)
Функция С: int mgl_datac_read (HADT dat, const char *fname)

Читает данные из текстового файла с разделителями символом пробела/табуляции с автоматическим определением размера массива. Двойной перевод строки начинает новый срез данных (по направлению z).

Команда MGL: read DAT 'fname' mx [my=1 mz=1]
Команда MGL: read REDAT IMDAT 'fname' mx [my=1 mz=1]
Метод класса mglData: bool Read (const char *fname, int mx, int my=1, int mz=1)
Метод класса mglDataC: bool Read (const char *fname, int mx, int my=1, int mz=1)
Функция С: int mgl_data_read_dim (HMDT dat, const char *fname, int mx, int my, int mz)
Функция С: int mgl_datac_read_dim (HADT dat, const char *fname, int mx, int my, int mz)

Читает данные из текстового файла с заданными размерами. Ничего не делается если параметры mx, my или mz равны нулю или отрицательны.

Команда MGL: readmat DAT 'fname' [dim=2]
Метод класса mglData: bool ReadMat (const char *fname, int dim=2)
Метод класса mglDataC: bool ReadMat (const char *fname, int dim=2)
Функция С: int mgl_data_read_mat (HMDT dat, const char *fname, int dim)
Функция С: int mgl_datac_read_mat (HADT dat, const char *fname, int dim)

Читает данные из текстового файла с размерами, указанными в первых dim числах файла. При этом переменная dim задает размерность (1d, 2d, 3d) данных.

Команда MGL: readall DAT 'templ' v1 v2 [dv=1 slice=off]
Метод класса mglData: bool ReadRange (const char *templ, mreal from, mreal to, mreal step=1.f, bool as_slice=false)
Метод класса mglDataC: bool ReadRange (const char *templ, mreal from, mreal to, mreal step=1, bool as_slice=false)
Функция С: int mgl_data_read_range (HMDT dat, const char *templ, mreal from, mreal to, mreal step, int as_slice)
Функция С: int mgl_datac_read_range (HADT dat, const char *templ, mreal from, mreal to, mreal step, int as_slice)

Объединяет данные из нескольких текстовых файлов. Имена файлов определяются вызовом функции sprintf(fname,templ,val);, где val меняется от from до to с шагом step. Данные загружаются один за другим в один и тот же срез данных (при as_slice=false) или срез-за-срезом (при as_slice=true).

Команда MGL: readall DAT 'templ' [slice=off]
Метод класса mglData: bool ReadAll (const char *templ, bool as_slice=false)
Метод класса mglDataC: bool ReadAll (const char *templ, bool as_slice=false)
Функция С: int mgl_data_read_all (HMDT dat, const char *templ, int as_slice)
Функция С: int mgl_datac_read_all (HADT dat, const char *templ, int as_slice)

Объединяет данные из нескольких текстовых файлов, чьи имена удовлетворяют шаблону templ (например, templ="t_*.dat"). Данные загружаются один за другим в один и тот же срез данных (при as_slice=false) или срез-за-срезом (при as_slice=true).

Команда MGL: scanfile DAT 'fname' 'templ'
Метод класса mglData: bool ScanFile (const char *fname, const char *templ)
Функция С: int mgl_data_scan_file (HMDT dat, const char *fname, const char *templ)

Читает файл fname построчно и каждую строку сканирует на соответствие шаблону templ. Полученные числа (обозначаются как ‘%g’ в шаблоне) сохраняются. См. раздел Scanning file, для примеров кода и графика.

Команда MGL: save dat 'fname'
Метод класса mglDataA: void Save (const char *fname, int ns=-1) const
Функция С: void mgl_data_save (HCDT dat, const char *fname, int ns)
Функция С: void mgl_datac_save (HCDT dat, const char *fname, int ns)

Сохраняет весь массив данных при ns=-1 или только ns-ый срез в текстовый файл.

Команда MGL: save val 'fname'

Сохраняет значение val в файл fname.

Команда MGL: save 'str' 'fname' ['mode'='a']

Сохраняет строку str в файл fname. Для параметра mode=‘a’ происходит добавление строки (по умолчанию): для mode=‘w’ файл будет перезаписан. См. раздел Scanning file, для примеров кода и графика.

Команда MGL: readhdf DAT 'fname' 'dname'
Метод класса mglData: void ReadHDF (const char *fname, const char *dname)
Метод класса mglDataC: void ReadHDF (const char *fname, const char *dname)
Функция С: void mgl_data_read_hdf (HMDT dat, const char *fname, const char *dname)
Функция С: void mgl_datac_read_hdf (HADT dat, const char *fname, const char *dname)

Читает массив с именем dname из HDF5 или HDF4 файла fname. Функция ничего не делает если библиотека была собрана без поддержки HDF5|HDF4.

Команда MGL: savehdf dat 'fname' 'dname' [rewrite=off]
Метод класса mglDataA: void SaveHDF (const char *fname, const char *dname, bool rewrite=false) const
Функция С: void mgl_data_save_hdf (HCDT dat, const char *fname, const char *dname, int rewrite)
Функция С: void mgl_datac_save_hdf (HCDT dat, const char *fname, const char *dname, int rewrite)

Сохраняет массив под именем dname в HDF5 или HDF4 файл fname. Функция ничего не делает если библиотека была собрана без поддержки HDF5|HDF4.

Команда MGL: savehdf val 'fname' 'dname' [rewrite=off]
Функция С: void mgl_real_save_hdf (real val, const char *fname, const char *dname, int rewrite)
Функция С: void mgl_dual_save_hdf (dual val, const char *fname, const char *dname, int rewrite)
Функция С: void mgl_int_save_hdf (long val, const char *fname, const char *dname, int rewrite)

Сохраняет значение val под именем dname в HDF5 файл fname. Функция ничего не делает если библиотека была собрана без поддержки HDF5.

Команда MGL: datas 'fname'
Метод класса mglDataA: int DatasHDF (const char *fname, char *buf, long size) static
Функция С: void mgl_datas_hdf (const char *fname, char *buf, long size)

Помещает имена массивов данных в HDF5 файле fname в строку buf разделёнными символом табуляции ’\t’. В версии MGL имена массивов будут выведены как сообщение. Функция ничего не делает если библиотека была собрана без поддержки HDF5.

Команда MGL: openhdf 'fname'
Метод класса mglParse: void OpenHDF (const char *fname)
Функция С: void mgl_parser_openhdf (HMPR pr, const char *fname)

Читает все массивы данных из HDF5 файла fname и создает переменные MGL с соответствующими именами. Если имя данных начинается с ‘!’, то будут созданы комплексные массивы.

Функция С: const char * const * mgl_datas_hdf_str (HMPR pr, const char *fname)

Помещает имена данных из HDF файла fname в массив строк (последняя строка ""). Массив строк будет изменен при следующем вызове функции.

Команда MGL: import DAT 'fname' 'sch' [v1=0 v2=1]
Метод класса mglData: void Import (const char *fname, const char *scheme, mreal v1=0, mreal v2=1)
Функция С: void mgl_data_import (HMDT dat, const char *fname, const char *scheme, mreal v1, mreal v2)

Читает данные из растрового файла. RGB значения пикселов преобразуются в число в диапазоне [v1, v2] используя цветовую схему sch (see Цветовая схема).

Команда MGL: export dat 'fname' 'sch' [v1=0 v2=0]
Метод класса mglDataA: void Export (const char *fname, const char *scheme, mreal v1=0, mreal v2=0, int ns=-1) const
Функция С: void mgl_data_export (HMDT dat, const char *fname, const char *scheme, mreal v1, mreal v2, int ns) const

Сохраняет данные в растровый файл. Числовые значения, нормированные в диапазон [v1, v2], преобразуются в RGB значения пикселов, используя цветовую схему sch (see Цветовая схема). Если v1>=v2, то значения v1, v2 определяются автоматически как минимальное и максимальное значение данных.

Команда MGL: readbin dat 'fname' type
Метод класса mglData: bool ReadBin (const char *fname, int type)
Функция С: int mgl_data_read_bin (HMDT dat, const char *fname, int type)

Читает данные из файла в бинарном формате. Параметр type задает тип данных в файле: 0 - double, 1 - float, 2 - long double, 3 - long int, 4 - int, 5 - short int, 6 - char. Внимание! Эту функцию не рекомендуется использовать с данными, сохраненными на других компьютерах из-за возможных проблем с бинарным представлением чисел. Предпочтительнее использовать HDF формат, см. readhdf.