Привет, дорогой хабр! Далее я приведу 5 функций, которые мне, в своей работе приходится постоянно использовать.
1. Получение длины файла
public int getFileRowsCount(string pathToFile)
{
System.IO.TextReader streamReader = new System.IO.StreamReader(pathToFile);
int rowsCounter = 0;
while ((streamReader.ReadLine()) != null)
{
rowsCounter++;
}
streamReader.Close();
return rowsCounter;
}
Здесь всё просто: пока не дойдём до пустой строки, прибавляем к счётчику строк единичку. Функция возвращает количество строк.
2. Получение текста файла
static string openAndReadTextFile(string pathToFile)
{
System.IO.StreamReader streamReader = new System.IO.StreamReader(pathToFile);
return streamReader.ReadToEnd();
}
Спасибо стандартным функциям.
3. Скачивание файла
public bool downloadFile(string url, string file)
{
System.Net.WebClient client = new System.Net.WebClient();
client.DownloadFile(url, file);
return true;
}
Скачивает в папку проекта.
4. Получение случайного числа в заданном диапазоне
public static int getRandomNumber(int from, int to)
{
System.Threading.Thread.Sleep(10);
Random r = new Random();
int var = r.Next(from, to);
return var;
}
Кратче, чем если использовать всё это каждый раз. Благодаря «усыплению» потока, случайные числа не повторятся, при использовании этой функции.
5. Открытие Excel файла и его считывание
public System.Collections.Generic.List<string> getExcelFileData(string pathToFile, string listName)
{
System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.12.0;Data Source=" + pathToExcelFile + ";Extended Properties=Excel 8.0");
con.Open();
System.Data.DataSet myDataSet = new System.Data.DataSet();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(" SELECT * FROM [" + listName+ "$]", con);
myCommand.Fill(myDataSet);
con.Close();
System.Collections.Generic.List<string> list = new System.Collections.Generic.List<string>();
foreach (System.Data.DataRow myDataRow in myDataSet.Tables[0].Rows)
{
Object[] cells = myDataRow.ItemArray;
foreach (object cellContent in cells)
{
string cellText = cellContent.ToString();
cellText = cellText.Replace("n", "|");
if (cellText == "") {} // бывали глюки, что пустые ячейки так же записывались в список
else
{
list.Add(cellText);
}
}
}
return list;
}
Данную функцию использую, и очень давно, на файлах Excel'я версии 2003 и выше. Если с 2003 не будет работать, стоит указать строку подключения:
Provider=Microsoft.Jet.OLEDB.4.0;
В заключении
1. Функции тем хороши, что вы можете их просто вставить в свой код и вызвать и они вас не подведут!
2. Да, проверок в функциях нет, вы можете их сами дописать либо «впихнуть» функции в блоки обработок исключений самостоятельно.
Спасибо.
Автор: coll3ctor