Подскажите, пожалуйста, как вывести каждую позицию слова в отдельному столбце грида? Вывожу позиции так:
string value = dataGridView8.CurrentRow.Cells[1].Value.ToString();
string str = richTextBox2.Text;
int length = str.Length;
while (true)
{
int i = str.IndexOf(value);
if (i == -1) break;
dataGridView9.Rows.Add(i.ToString());
str = str.Substring(i + value.Length);
}
Результат следующий: Нужно,например, чтобы "9" было в "N1", а "781" уже в "N2", "119" в "N1", "360" в "N2", а в "delta" -> "N2-N1". Подскажите, пожалуйста.
string value = dataGridView8.CurrentRow.Cells[1].Value.ToString().ToLower();
string str = richTextBox2.Text.ToLower();
int length = str.Length;
int N1 = 0, N2 = 0, delta = 0, k = 0, i = 0;
// Символьный массив delims должен включать все знаки пунктуации, используемые в тексте
char[] delims = {',', '.', ':', ';', '?', '!', '(', ')', '[', ']',
'<', '>', '{', '}', '\'', '\"', '\\', '\n', '\r', '\t'};
// Очистка текста от знаков пунктуации (замена их на пробелы)
for (int j = 0; j <= delims.Length - 1; j++) {
str = str.Replace(delims[j], ' ');
}
while (true) {
if (str.Length == length) {
i = str.IndexOf(value + " "); // начало текста может не содержать лидирующего пробела
if (i == -1) break;
}
else {
i = str.IndexOf(" " + value + " "); // далее текст разделен на слова пробелами
if (i == -1) break;
else i++; // уточняем позицию найденного слова
}
k++;
if (k % 2 == 1) { // k - нечётное
N1 = i + length - str.Length;
}
else { // k - чётное
N2 = i + length - str.Length;
if (N2 > N1) {
delta = N2 - N1;
dataGridView9.Rows.Add(value, N1.ToString(), N2.ToString(), delta.ToString());
}
}
str = str.Substring(i + value.Length); // усечение строки с "головы"
}
if (k % 2 == 1 && N1 > N2) { // в случае, когда для N1 нет парного N2, используем N2
delta = N1 - N2; // из предыдущей пары с учётом порядка следования в тексте
dataGridView9.Rows.Add(value, N2.ToString(), N1.ToString(), delta.ToString());
}
Для надёжного выделения слов в тексте очистим его от знаков пунктуации, заменив их пробелами. Поиск слова будем выполнять, дополнив образец пробелами слева и справа. Тогда получим следующий улучшенный вариант. Указанную вами проблему он решает. Но в тексте могут встретиться и другие особые случаи. Например, изменяемые формы слов: существительные склоняются, глаголы спрягаются и т.д. Так что, совершенствованию предела нет.:)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть программа, которая парсит данные с сайта и сохраняет их по одному экземпляру в файлы f1json , f2
Всем приветУ меня есть на одной линии машина и три триггера, идущих друг за другом
Не записывает текст в файл=( Подскажите, пожалуйста, что не так?