Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
1 / 1 / 0
Регистрация: 29.01.2018
Сообщений: 22

Объединение/склеивание группы строк в одну строку

29.01.2018, 17:54. Показов 5057. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, задача следующая...
Существует файл 1.txt, в котором находится очень много строк в таком виде:
текст1 текст1 текст1
текст2 текст2 текст2
текст3 текст3 текст3
текст4 текст4 текст4
----------
текст5 текст5 текст5
текст6 текст6 текст6
текст7 текст7 текст7
текст8 текст8 текст8
----------
Необходимо объединить/склеить группы строк, которые разделены символами (----------) в одну строку, каждую последнюю строку отдельной группы продублировать/добавить в конец строки а также добавить дополнительные/разные символы вначале строки, между строками, между предпоследней и последней (продублированной) строкой и в конце, чтобы получился такой результат:
$$$текст1 текст1 текст1###текст2 текст2 текст2###текст3 текст3 текст3###текст4 текст4 текст4@@@текст4 текст4 текст4***
----------
$$$текст5 текст5 текст5###текст6 текст6 текст6###текст7 текст7 текст7###текст8 текст8 текст8@@@текст8 текст8 текст8***
----------
На C# такое возможно сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.01.2018, 17:54
Ответы с готовыми решениями:

Объединение строк в одну строку
здравствуйте! как организовать в bat такое приведу пример 1.txt написано "ира" во втором 2.txt "панова" в третьем 3.txt...

Объединение массива строк в одну строку
Объединение массива строк в одну строку. В чем ошибка? Заранее спасибо! #include <stdio.h> #include <stdlib.h> ...

Перенос значений из строк в столбцы. При выполнении по 2-х условий, объединение данных в одну строку. Удаление
Добрый день, подскажите, как решить задачу. Есть выгрузка данных, необходимо перенести значения строк со значением «есть на складе»,...

22
1 / 1 / 0
Регистрация: 29.01.2018
Сообщений: 22
07.12.2018, 00:55  [ТС]
Студворк — интернет-сервис помощи студентам
Добрый вечер.
До сего дня успешно пользовался данным кодом:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System.IO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication8
{
    class Program
    {
        static void Main(string[] args)
        {
            var sourse = File.ReadAllLines("1.txt", Encoding.Default);
            var target = File.ReadAllLines("2.txt", Encoding.Default);
            var dict = new Dictionary<string, string>();
            for (int i = 0; i < sourse.Length; i += 2)
            {
                for (int j = 0; j < target.Length; j += 2)
                {
                    if (sourse[i] == target[j])
                    {
                        dict.Add(sourse[i + 1], target[j + 1]);
                        break;
                    }
                }
            }
            var result = File.ReadAllLines("3.txt", Encoding.Default).ToList();
            for (int i = result.Count - 1; i >= 0; i--)
            {
                foreach (var item in dict)
                {
                    if (result[i].EndsWith(item.Key))
                    {
                        result.Insert(i - 1, item.Value);
                        break;
                    }
                }
            }
            File.WriteAllLines("result.txt", result, Encoding.Default);
        }
    }
}

Но теперь программа не работает, а выдаёт ошибку: System.ArgumentException: "Элемент с тем же ключом уже был добавлен."
Кликните здесь для просмотра всего текста

Пожалуйста, помогите понять, в чём проблема, и как исправить?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18352 / 14278 / 5370
Регистрация: 17.03.2014
Сообщений: 28,961
Записей в блоге: 1
09.12.2018, 00:29
georgmann, это значит что в первом файле повторяются строки. Приведенный код исходит из того так не может быть. Думаю следует удалить дубль.
1
1 / 1 / 0
Регистрация: 29.01.2018
Сообщений: 22
09.12.2018, 02:32  [ТС]
OwenGlendower,
Да, спасибо. Уже разобрался, заменил часть этого кода:
C#
1
2
3
4
5
if (sourse[i] == target[j])
{
    dict.Add(sourse[i + 1], target[j + 1]);
    break;
}
на это:
C#
1
2
3
4
5
6
7
8
if (sourse[i] == target[j])
{
    if (!dict.ContainsKey(sourse[i + 1]))
    {
       dict.Add(sourse[i + 1], target[j + 1]);
    }
    break;
}
и всё работает даже с дублями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2018, 02:32

Объединение строк в одну
Приветствую всех. Ребята кто в курсе подскажите как объеденить строки в ListBox . Например есть 4 строки в ListBox1: 11111 22222 ...

Объединение строк в одну
Коллеги, добрый день. Подскажите пожалуйста как быть Есть таблица id text 1 abcd 1 erty 1 asdf 2 asdf 2 asdfa 2...

Sql объединение в одну строку
Здравствуйте. Подскажите. есть таблица: Id Value 1 a 2 б 1 б 1 в Мне нужно выбрать все значения Value где ID=1;

Объединение строк из файла в одну
Снова здравствуйте, уважаемые форумчане... Имеется вопрос - Как с текстового файла все строки объединить в одну? Символы могут быть любыми ...

Объединение строк по 5 подряд в одну
Здравствуйте! Я не программист и не сисадмин, я врач. Но мне очень нужна помощь с объединением строк в таблице Excel. Возможно, эта задача...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru