5 функций C# на каждый день

в 8:30, , рубрики: Программирование, функции, метки: ,

Привет, дорогой хабр! Далее я приведу 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


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js