logo

[ELMA3] Загрузка пользователей из текстового файла с разделителями

Для загрузки пользователей нам понадобится текстовый файл с разделителями, где значение каждой колонки отделяется друга от друга символом ";". Кодировка информации в файле соответствует кодовой странице 1251. Одна строка в файле соответствует одному загружаемому пользователю. Первая колонка будет содержать "Номер комнаты", вторая – "Фамилия Имя Отчество" разделенные пробелами, третья – "Номер рабочего телефона", четвертая – "ICQ".

Необходимо учитывать, что количество загружаемых пользователей не должно превышать число пользователей, указанное в лицензии.

Пример строки из загружаемого файла:

100;Петров Сергей Анатольевич ;78-90-90;789928341

Для корректной работы сценария необходимо подключить ссылки на сборки:

using System.IO;
using EleWise.ELMA.Security.Managers; 

Текст сценария загрузки пользователей из файла:

// указываем файл и задаем тип кодировки содержимого
string filename	= @"D:\users.csv";
Encoding enc	= Encoding.GetEncoding(1251);

// открываем поток для вывода символов из файла в определенной кодировке
StreamReader rs 	= new StreamReader(filename,  enc);

// буферная строка
string stline	=  "";

//  запускаем цикл чтения строк из потока
while ((stline = rs.ReadLine()) != null) 	
{
	// формируем массив из полей файла (номер комнаты, должность, ФИО, номер 
      // телефона, ICQ)
	string[] stparts	= stline.Split(’;’);

	// разбираем значения поля ФИО на: Фамилия (stfio[0]), Имя (stfio[1]), Отчество 
	// (stfio[2]) 

	string[] stfio	= stparts[2].Split(’ ’);

	//  создаем экземпляр объекта "Пользователь"
	var UserNew		= UserManager.Instance.Create();
	UserNew.FirstName	= stfio[1];	//   Имя
	UserNew.MiddleName= stfio[2];	//   Отчество
	UserNew.LastName	= stfio[0];	//   Фамилия

	//  создадим учетную запись (логин) для входа в систему   (ПетровАС)
	UserNew.UserName	= stfio[0] + stfio[1].Substring(0,1) +stfio[2].Substring(0,1);        
	UserNew.FullName	= stparts[2];	 // полное имя
	UserNew.RoomNumber = stparts[0];    // номер комнаты  
	UserNew.WorkPhone  = stparts[3];    // номер телефона  

	// сохраняем экземпляр объекта 
	UserNew.Save();
}
//   закрываем поток
rs.Close();

Прикрепленные файлы