При парсинге статусов не корректное отображение в нотепад++

Регистрация
01.08.2020
Сообщения
6
Благодарностей
0
Баллы
1
Здравствуйте уважаемые коллеги. Подскажите пожалуйста. При парсинге статусов с сайта два блокнота по разному располагают текст. В обычном блокноте, как и положено каждый элемент отображается в своей строке. А в нотепад++, как на сайте с переносами строк. На скринах, это видно. Количество элементов 20 шт. Перекопал весь гугл, не могу разобраться, как настроить нотепад++, чтобы и в дальнейшем не было таких заморочек. Кодировка в Utf-8. Перенос строк отключен. Может кто сталкивался с такой проблемой? Заранее спасибо.
Код.jpg
Скан с блокнота.jpg
Скан с нотепад++.jpg
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
скорее всего там затесались символы конца строки без символа новой. Попробуй перед добавлением в файл чистить переменную stat от \r
 
Регистрация
01.08.2020
Сообщения
6
Благодарностей
0
Баллы
1
скорее всего там затесались символы конца строки без символа новой. Попробуй перед добавлением в файл чистить переменную stat от \r
Stat = Stat.Trim(new char[] { '\r', '\r' });
Такой способ)? Ничего другого не нашел. Не помогает. TrimEnd тоже самое.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
Регистрация
01.08.2020
Сообщения
6
Благодарностей
0
Баллы
1

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
Регистрация
01.08.2020
Сообщения
6
Благодарностей
0
Баллы
1
попробуй
Stat = Stat.Replace("\r","");
string Pathitog = project.Directory+ "/itog.txt"; //путь к файлу
string Stat = string.Empty; //инициируем строковую переменную и даем ей значение пустой строки

string Stat1 = string.Empty;

instance.ActiveTab.Navigate("http://vipstatus.su", ""); //переход на сайт
instance.ActiveTab.WaitDownloading(); //ждать прогрузки страницы

HtmlElementCollection Coltest = instance.ActiveTab.FindElementsByAttribute("div", "class", "shortstory_content", "regexp");

//return Coltest.Count; //выводим количество элементов на странице
//return Coltest.GetByNumber(5).InnerText; //выводим по номеру статус. Атрибут InnerText
for (int a = 0; a < Coltest.Count; a++) // заводим счетчик, цикл перебирает элементы пока а < количества элементов, счетчик увеличиваем на 1
{
Stat = Coltest.GetByNumber(a).InnerText; //записываем результат в переменную

Stat1 = Stat.Replace("\r","");
File.AppendAllText(Pathitog, Stat1+ Environment.NewLine); //записываем результат в новую строку в файл

}

return Stat1;

Тоже не помогает. Уже новую переменную завёл) Думаю, что в дальнейшем я всё равно с этим разберусь) Уже пол дня убил)) Спасибо!
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113
попробуй сделать так, и увидишь по идее почему так происходит

60924
 
Регистрация
01.08.2020
Сообщения
6
Благодарностей
0
Баллы
1

backoff

Client
Регистрация
20.04.2015
Сообщения
5 926
Благодарностей
6 389
Баллы
113
1. скопируй текст из другого текстовика и вставь руками, что нить изменится?
2. посмотри в какой кодировке парсится текст, возможно он как-то взаимодействует возможно изза разных кодировок текстовика и самого текста

не думаю что в текстовиках проблема, думаю в самом парсинге, тем более, парсишь статусы, а в статусах обычно всякое "говно" добавляют типа спец символы попробуй удалять все что не равно буквам/цифрам(если они нужны)
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113

sashf1999

Client
Регистрация
04.01.2019
Сообщения
37
Благодарностей
11
Баллы
8
Как вариант, можно попробовать как выше написали или еще
Stat = Stat.Replace("\r\n","");
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 598
Баллы
113
Как вариант, можно попробовать как выше написали или еще
Stat = Stat.Replace("\r\n","");
там по скрину видно обилие одиночных \n. В них подвох. Нотпад принимает их в качестве полноценного переноса, а блокнот нет
 
Регистрация
01.08.2020
Сообщения
6
Благодарностей
0
Баллы
1
там по скрину видно обилие одиночных \n. В них подвох. Нотпад принимает их в качестве полноценного переноса, а блокнот нет
Да, спасибо. Вкурил в чем причина только тогда, когда в таблицах полезло то же самое. Всему виной \n. Ниже красным выделил решение. Теперь буду разбираться с таблицами, но это уже другая тема.) Думаю там уже будет проще. Всем спасибо за отклики и помощь!

Итог.jpg

string Pathitog = project.Directory+ "/itog.txt"; //путь к файлу
string Stat = string.Empty; //инициируем строковую переменную и даем ей значение пустой строки

instance.ActiveTab.Navigate("https://vipstatus.su", ""); //переход на сайт
instance.ActiveTab.WaitDownloading(); //ждать прогрузки страницы

HtmlElementCollection Coltest = instance.ActiveTab.FindElementsByAttribute("div", "class", "shortstory_content", "regexp");

//return Coltest.Count; //выводим количество элементов на странице
//return Coltest.GetByNumber(5).InnerText; //выводим по номеру статус. Атрибут InnerText
for (int a = 0; a < Coltest.Count; a++) // заводим счетчик, цикл перебирает элементы пока а < количества элементов, счетчик увеличиваем на 1
{
Stat = Coltest.GetByNumber(a).InnerText; //записываем результат в переменную

Stat = Stat.Replace("\n", ""); // решило проблему

File.AppendAllText(Pathitog, Stat+ Environment.NewLine); //записываем результат в новую строку в файл

}

return Stat;

проверил в таблицах то же работает.


IZennoTable Teble1 = project.Tables["Test_t"];


string Stat = string.Empty;

instance.ActiveTab.Navigate("http://vipstatus.su", "");
instance.ActiveTab.WaitDownloading();

HtmlElementCollection ColTest = instance.ActiveTab.FindElementsByAttribute("div", "class", "shortstory_content", "regexp");

for (int a = 0; a < ColTest.Count; a++)
{
Stat = ColTest.GetByNumber(a).InnerText;
Stat = Stat.Replace("\n", "" );
Teble1.SetCell(0, a, Stat);

}

return Stat;

Итог таб..jpg
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)