Работа со списком.

serg5

Client
Регистрация
06.09.2017
Сообщения
16
Благодарностей
0
Баллы
3
Доброго времени суток.

Есть текстовый файл, список.
В нём текст вида:

-----------------------------------------
текст <br></br>

текст текст <br></br>

текст <br></br>

текст
-----------------------------------------
текст <br></br>

текст <br></br>

текст текст <br></br>

текст
-----------------------------------------

и т.д.

Как взять каждый текст по отдельности между: ---------------------------------------- и -----------------------------------------
и преобразовать в одну строку, каждый по отдельности, без <br></br>
соответственно и сохранить в файл.

Может кто-то знает как можно реализовать эту задачу ?
Спс.
 

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
примерно так (Список 1 - поменять на имя вашего списка)

C#:
var list = project.Lists["Список 1"];
var resultList = new List<string>();
Random r = new Random();
for(int i=1;i<list.Count;i++)
{
    if(list[i].Contains("-----"))
    {
        //запись в файл
        if(resultList.Count > 0) File.WriteAllLines(project.Path + r.Next(100000, 9999999).ToString() + ".txt", resultList);
        resultList.Clear();
    }
    else
    {
        //данные для записи
        resultList.Add(list[i].Replace("<br>", "").Replace("</br>", "").Trim());
    }
}
 
  • Спасибо
Реакции: serg5

serg5

Client
Регистрация
06.09.2017
Сообщения
16
Благодарностей
0
Баллы
3
примерно так (Список 1 - поменять на имя вашего списка)

C#:
var list = project.Lists["Список 1"];
var resultList = new List<string>();
Random r = new Random();
for(int i=1;i<list.Count;i++)
{
    if(list[i].Contains("-----"))
    {
        //запись в файл
        if(resultList.Count > 0) File.WriteAllLines(project.Path + r.Next(100000, 9999999).ToString() + ".txt", resultList);
        resultList.Clear();
    }
    else
    {
        //данные для записи
        resultList.Add(list[i].Replace("<br>", "").Replace("</br>", "").Trim());
    }
}
Выполнение действия CSharp OwnCode. Ссылка на объект не указывает на экземпляр объекта.
:(
 

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93

serg5

Client
Регистрация
06.09.2017
Сообщения
16
Благодарностей
0
Баллы
3

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 440
Благодарностей
503
Баллы
113
Может кто-то знает как можно реализовать эту задачу ?
Прекрасно что Вам предложили решение на шарпе, но я сторонник того что в процессе познания зенно нужно научиться досконально пользоваться штатными кубиками. И в контексте этого я бы сделал так -

1. Читаем файл в переменную

2. В переменной меняем все <br> \n \r \n\r на пробел или пустоту, таким образом удаляем все лишние в контексте вашего задания переносы

3. Отредактированную переменную кладём в список в разделителем -----------------------------------------

4. Каждую строку берём с удалением и записываем в файл, логику наименования файла придумываем как нужно

В итоге получается результат который вам необходим.

Ну и решение на C# это делает в один кубик, что работает быстрее и эффективнее, но в таком случае учите шарп изначально, зачем вам зенно?
 
Последнее редактирование:

serg5

Client
Регистрация
06.09.2017
Сообщения
16
Благодарностей
0
Баллы
3
Спасибо,но:
по первому варианту:

<br> поменял простой заменой на пустоту.
те. остался код:
Наполнение списка:
for(int i=0;i<15;i++)
{
    project.Lists["Список 1"].Add("test\n\r");
    
    if(i==5 || i==10) project.Lists["Список 1"].Add("-------------");
}
и
C#:
var list = project.Lists["Список 1"];
var resultList = new List<string>();
Random r = new Random();
for(int i=1;i<list.Count;i++)
{
    if(list[i].Contains("-----"))
    {
        //запись в файл
        if(resultList.Count > 0) File.WriteAllLines(project.Path + r.Next(100000, 9999999).ToString() + ".txt", resultList);
        resultList.Clear();
    }
    else
    {
        //данные для записи
        resultList.Add(list[i].Replace("\n\r", "").Trim());
    }
}
изначальный текст в файле вместе с пунктуацией остался тот же,
т.е. был как в прикр. файле стал:

Включает краткое описание темы,
пользователей, выгод и
смежных тем. Ссылается на
“лучший опыт”, “шпаргалки”
и обзоры функций.
-------------
Предоставляет информацию
о важных юридических
правилах и
процедурах в легкоусвояемой
форме.
-------------
Описывает предполагаемое
поведение программы,
а также вероятные
причины непредвиденных
проблем; информация сгруппирована
по теме или по причине.
-------------
Вкратце описывает задачу,
предоставляет конкретные
указания и четкие
пошаговые инструкции.
-------------
test

test

test

test

test

test

-------------
test

test

test

test

test

-------------
test

test

test

test

По второму варианту:
так же уже без <br> на выходе
получилось:

Включает краткое описание темы,
пользователей, выгод и
смежных тем. Ссылается на
“лучший опыт”, “шпаргалки”
и обзоры функций.


Предоставляет информацию
о важных юридических
правилах и
процедурах в легкоусвояемой
форме.


Описывает предполагаемое
поведение программы,
а также вероятные
причины непредвиденных
проблем; информация сгруппирована
по теме или по причине.


Вкратце описывает задачу,
предоставляет конкретные
указания и четкие
пошаговые инструкции.

не плохо,но результат как-бы не совсем то.
 

Вложения

  • 940 байт Просмотры: 0

serg5

Client
Регистрация
06.09.2017
Сообщения
16
Благодарностей
0
Баллы
3
После перезагрузки ПК результат выдал тот который нужен по второму варианту.
Видимо глюк.
По первому варианту на C# к сожалению файл остаётся не изменённым.
Благодарю всех ! Отдельное Evgeniy S.
:bf:
 

MasterSEED

Client
Регистрация
20.08.2024
Сообщения
2
Благодарностей
0
Баллы
1
Определи разделитель в строке и дальше натяни что то из предложенного выше
 

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