string[,] dataArr = CreateRectangularArray(arrList);
static T[,] CreateRectangularArray<T>(IList<T[]> arrays)
{
if (arrays.Count == 0)
{
Console.WriteLine("Лист одномерных массивов arrays пуст (nullable). Из-за этого метод CreateRectangularArray не будет работать.");
int minorLength = 5;
T[,] ret = new T[arrays.Count, minorLength];
return ret;
}
else
{
int minorLength = arrays[0].Length;
T[,] ret = new T[arrays.Count, minorLength];
for (int i = 0; i < arrays.Count; i++)
{
var array = arrays[i];
if (array.Length != minorLength)
{
throw new ArgumentException("All arrays must be the same length");
}
for (int j = 0; j < minorLength; j++)
{
ret[i, j] = array[j];
}
}
return ret;
}
}
string date1 = "2017-10-05";
DateTime Date1 = DateTime.Parse(date1);
string date2 = "2017-10-14";
DateTime Date2 = DateTime.Parse(date2);
DateTime incrementedDate = Date1;
while (incrementedDate < Date2)
{
incrementedDate = incrementedDate.AddDays(1);
Console.WriteLine(incrementedDate.ToString("yyyy-MM-dd"));
}
HttpWebRequest
получилось сделать:HttpWebRequest http = (HttpWebRequest)WebRequest.Create(pathToHtml);
WebResponse response = http.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream);
string html = sr.ReadToEnd();
// Создание экземпляра локальной переменной «doc».
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
// Загрузка HTML кода в локальную переменную «doc».
doc.LoadHtml(html);
var x = doc.DocumentNode.SelectNodes(pathToHTMLTextNode).Elements("tr").ToList();
strArray
. Тип данных, хранимых в результирующем одномерном массиве - string
.//Создаём приложение.
Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
//Открываем книгу.
Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(pathToFile, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
//Выбираем таблицу(лист).
Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
// Указываем номер столбца (таблицы Excel) из которого будут считываться данные.
int numCol = 2;
Range usedColumn = ObjWorkSheet.UsedRange.Columns[numCol];
System.Array myvalues = (System.Array)usedColumn.Cells.Value2;
string[] strArray = myvalues.OfType<object>().Select(o => o.ToString()).ToArray();
// Выходим из программы Excel.
ObjExcel.Quit();
pathToFile
- путь к Excel файлу.string pathToFile = @"C:\Users\alexey\data.xlsx";
numCol
- номер столбца в таблице Excel из которого будет происходить чтение данных.strArray
из типа данных string
к другому типу данных, к примеру double
, то это можно сделать нижеприведенным кодом:// Преобразование всех элементов одномерного массива
// strArray из строкового типа в тип double.
for (int i = 0; i < strArray.Length; i++)
DataArray[i] = Convert.ToDouble(strArray[i]);
word = PasteDashes.SeparateWord(word);
public static class PasteDashes
{
// Метод проверки, есть ли в строке гласные?
private static bool isNotLastSep(string subStr)
{
string vowel = "аеёиоуыэюя";
var b = false;
for (var i = 0; i < subStr.Length; i++)
{
if (vowel.IndexOf(subStr.Substring(i, 1)) != -1)
{
b = true;
break;
}
}
return b;
}
// Метод разбиения слова на слоги
private static List<string> addSeparator(string tmpS, List<string> sepList)
{
sepList.Add(tmpS);
//tmpS = "";
return sepList;
}
// Метод убирания знаков тире после первой буквы и перед последней (если там есть знаки тире)
private static string ConnectFirstAndLastLettersToSyllables(string word)
{
if (word[1] == '-')
word = word.Remove(1, 1);
if (word[word.Length - 2] == '-')
word = word.Remove(word.Length - 2, 1);
return word;
}
//Основной метод работающий по алгоритму Христова
public static string SeparateWord(string word)
{
string vowel = "аеёиоуыэюя";
string voiced = "бвгджзлмнрхцчшщ";
string deaf = "кпстф";
string brief = "й";
string other = "ьъ";
string consonant = "бвгджзйклмнпрстфхцчшщ";
string letter, syllable = "";
var syllables = new List<string>();
for (var i = 0; i < word.Length; i++)
{
letter = word.Substring(i, 1);
syllable += letter;
bool l;
if (word.Length != i + 1)
{
var k = word.Substring(i + 1, 1);
Regex rgx = new Regex("[А-Яа-я]");
l = rgx.IsMatch(k);
}
else
l = false;
if (l)
{
// Проверка на признаки конца слогов
// Если буква равна 'й' и она не первая и не последняя и это не последний слог
if (
(i != 0) &&
(i != word.Length - 1) &&
(brief.IndexOf(letter) != -1) &&
(isNotLastSep(word.Substring(i + 1)))
)
{
syllables = addSeparator(syllable, syllables);
syllable = "";
//continue;
}
// Если текущая гласная и следующая тоже гласная
// EDIT: этот блок необходим если задача - корректно разбить слово на фонетические слоги,
// и не нужен если задача - разбить слово на части, которые можно переносить
//if (
// (i < word.Length - 1)
// && (vowel.IndexOf(letter) != -1) &&
// (vowel.IndexOf(word.Substring(i + 1, 1)) != -1)
// )
//{
// syllables = addSeparator(syllable, syllables);
// syllable = "";
// // continue;
//}
// Если текущая гласная, следующая согласная, а после неё гласная
if (
(i < word.Length - 2) &&
(vowel.IndexOf(letter) != -1) &&
(consonant.IndexOf(word.Substring(i + 1, 1)) != -1) &&
(vowel.IndexOf(word.Substring(i + 2, 1)) != -1)
)
{
syllables = addSeparator(syllable, syllables);
syllable = "";
// continue;
}
// Если текущая гласная, следующая глухая согласная, а после согласная и это не последний слог
if (
(i < word.Length - 2) &&
(vowel.IndexOf(letter) != -1) &&
(deaf.IndexOf(word.Substring(i + 1, 1)) != -1) &&
(consonant.IndexOf(word.Substring(i + 2, 1)) != -1) &&
(isNotLastSep(word.Substring(i + 1)))
)
{
syllables = addSeparator(syllable, syllables);
syllable = "";
// continue;
}
// Если текущая звонкая или шипящая согласная, перед ней гласная, следующая не гласная и не другая, и это не последний слог
if (
(i > 0) &&
(i < word.Length - 1) &&
(voiced.IndexOf(letter) != -1) &&
(vowel.IndexOf(word.Substring(i - 1, 1)) != -1) &&
(vowel.IndexOf(word.Substring(i + 1, 1)) == -1) &&
(other.IndexOf(word.Substring(i + 1, 1)) == -1) &&
(isNotLastSep(word.Substring(i + 1)))
)
{
syllables = addSeparator(syllable, syllables);
syllable = "";
// continue;
}
// Если текущая другая, а следующая не гласная если это первый слог
if (
(i < word.Length - 1) &&
(other.IndexOf(letter) != -1) &&
((vowel.IndexOf(word.Substring(i + 1, 1)) == -1) ||
(isNotLastSep(word.Substring(0, i))))
)
{
syllables = addSeparator(syllable, syllables);
syllable = "";
//continue;
}
}
}
syllables = addSeparator(syllable, syllables);
string finalWord = string.Join("-", syllables);
finalWord = ConnectFirstAndLastLettersToSyllables(finalWord);
return finalWord;
}
}