Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 15
1
.NET 4.x

Из строк текстового файла получить имена файлов и записать их в отдельный текстовый файл

12.04.2016, 14:54. Просмотров 1133. Ответов 10
Метки нет (Все метки)

Доброго времени суток, имеется текстовый файл, порядка 7-ми или 8-ми тысяч строк
Код
100157‡I:\INTERNET-SHOP\FOTOS\WALL\PIANCA\Puro.jpg
100158‡I:\INTERNET-SHOP\FOTOS\WALL\PIANCA\Sbalzato 1.jpg
100159‡I:\INTERNET-SHOP\FOTOS\WALL\PIANCA\Sbalzato 2.jpg
100173‡I:\INTERNET-SHOP\FOTOS\DINING ROOM\PIANCA\Esse1.jpg;I:\INTERNET-SHOP\FOTOS\DINING ROOM\PIANCA\Esse11.jpg;I:\INTERNET-SHOP\FOTOS\DINING ROOM\PIANCA\Esse111.jpg
100174‡I:\INTERNET-SHOP\FOTOS\DINING ROOM\PIANCA\Esse2.jpg;I:\INTERNET-SHOP\FOTOS\DINING ROOM\PIANCA\Esse22.jpg;I:\INTERNET-SHOP\FOTOS\DINING ROOM\PIANCA\Esse222.jpg
100175‡I:\INTERNET-SHOP\FOTOS\DINING ROOM\PIANCA\Cora1.jpg;I:\INTERNET-SHOP\FOTOS\DINING ROOM\PIANCA\Cora2.jpg;I:\INTERNET-SHOP\FOTOS\DINING ROOM\PIANCA\Cora3.jpg
100176‡I:\INTERNET-SHOP\FOTOS\DINING ROOM\PIANCA\1+1.jpg
100177‡I:\INTERNET-SHOP\FOTOS\DINING ROOM\PIANCA\Abaco.jpg
100178‡I:\INTERNET-SHOP\FOTOS\WALL\PIANCA\People 9.jpg
100179‡I:\INTERNET-SHOP\FOTOS\WALL\PIANCA\Spazio 5.jpg
100180‡I:\INTERNET-SHOP\FOTOS\WALL\PIANCA\Spazio 6.jpg
100186‡I:\INTERNET-SHOP\FOTOS\SOFAS\PIANCA\boston uglovoy.jpg
100187‡I:\INTERNET-SHOP\FOTOS\SOFAS\PIANCA\boston.jpg
100188‡I:\INTERNET-SHOP\FOTOS\SOFAS\PIANCA\Asolo.jpg;I:\INTERNET-SHOP\FOTOS\SOFAS\PIANCA\Asolo2.jpg
100226‡I:\INTERNET-SHOP\FOTOS\SALE\a-style\IMAG5507.jpg
100244‡I:\INTERNET-SHOP\FOTOS\SOFAS\ALBERTA SALOTTI\Alberta Salotti\Morrison +.jpg
100247‡I:\INTERNET-SHOP\FOTOS\SOFAS\ALBERTA SALOTTI\Alberta Salotti\Floyd 1+.jpg;I:\INTERNET-SHOP\FOTOS\SOFAS\ALBERTA SALOTTI\Alberta Salotti\Floyd 2.jpg
100250‡I:\INTERNET-SHOP\FOTOS\SOFAS\ALBERTA SALOTTI\Alberta Salotti\Kalinda +.jpg
100253‡I:\INTERNET-SHOP\FOTOS\SOFAS\ALBERTA SALOTTI\Alberta Salotti\Broadway 1 +.jpg;I:\INTERNET-SHOP\FOTOS\SOFAS\ALBERTA SALOTTI\Alberta Salotti\Broadway 2.jpg
100254‡I:\INTERNET-SHOP\FOTOS\SOFAS\ALBERTA SALOTTI\Alberta Salotti\Blow 2 +.jpg
100256‡I:\INTERNET-SHOP\FOTOS\SOFAS\ALBERTA SALOTTI\Alberta Salotti\Overland +.jpg
нужно из него вытащить имена файлов с расширением и записать их в отдельный текстовый файл, перед названием каждого файла слеш в виде: \имя_файла.расширение и каждый новый файл с новой строки
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.04.2016, 14:54
Ответы с готовыми решениями:

Записать в текстовый файл все имена файлов в директории
Написать дополнительный файл, подключаемый к. cpp, который записывает в текстовый файл все имена...

Дан текстовый файл. Записать в отдельный файл все симметричные строки исходного файла, являющиеся отдельными предложения
Работа с файлами и строками,если можно,то напишите код,а если можно,то ещё с объяснениями

Записать в текстовый файл размеры и имена файлов, размер которых больше заданного пользователем
записать в текстовый файл размеры и имена файлов, размер которых больше заданного пользователем....

Записать в текстовый файл даты создания и имена файлов, размер которых меньше заданного
Добрый вечер, можно пожалуйста попросить Вас решить задачку, кому не сложно. Буду очень благодарен....

10
735 / 476 / 187
Регистрация: 30.12.2012
Сообщений: 1,275
Записей в блоге: 2
12.04.2016, 15:13 2
Лучший ответ Сообщение было отмечено lion_forest как решение

Решение

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
using System.IO;
 
namespace ConsoleApplication23
{
    class Program
    {
        static void Main(string[] args)
        {
            using (StreamReader sr = new StreamReader("in.txt"))
            {
                using (StreamWriter sw = new StreamWriter("out.txt"))
                {
                    while (!sr.EndOfStream)
                    {
                        string[] line = sr.ReadLine().Split(';');
                        foreach (var item in line)
                        {
                            sw.WriteLine(item.Substring(item.LastIndexOf('\\')));
                        }
                    }
                }
            }
        }
    }
}
1
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 15
13.04.2016, 15:27  [ТС] 3
Tsin, не все имена файлов скопировались, вот привожу пример, правда из другого места, но названия файлов тут есть, файлы не найдены как раз потому, что в out.txt не скопировались имена файлов из in.txt, проверял вручную по поиску, их там просто нет, возможно из за длинных имен файлов?
Код
Файл не найден: /uploader/data/FOTOS/ACCESSORIES/AHURA/SH0025С.jpg Товар: 101798
Файл не найден: /uploader/data/FOTOS/ACCESSORIES/decor toscana/3329 - копия (3).jpg Товар: 102272
Файл не найден: /uploader/data/FOTOS/SOFAS/mm matriza/NN/18. Dega - NN- S- RELOTTI/Кресло Dega - NN- S- RELOTTI  (РОССИЯ).jpg Товар: 15428
Файл не найден: /uploader/data/FOTOS/SOFAS/LIBRO/PLAY/City_sawana.jpg Товар: 45814
Файл не найден: /uploader/data/FOTOS/SOFAS/LIBRO/ASTUS NEW/Astus_new.jpg Товар: 45817
Файл не найден: /uploader/data/FOTOS/SOFAS/LIBRO/PLAY/street_sawana.jpg Товар: 50803
Файл не найден: /uploader/data/FOTOS/SOFAS/mm matriza/voroneg/1/doge 295х113х115.jpg Товар: 54677
Файл не найден: /uploader/data/FOTOS/SOFAS/LIBRO/zipo/Libro_zipo.jpg Товар: 54971
Файл не найден: /uploader/data/FOTOS/SOFAS/LIBRO/zipo/Libro_zipo_2.jpg Товар: 54971
Файл не найден: /uploader/data/FOTOS/DINING ROOM/POLYWOOD/Princess/princess_dinner_room_stol.jpg Товар: 56352
Файл не найден: /uploader/data/FOTOS/ACCESSORIES/LES ANDRE/table 8238.jpg Товар: 57341
Файл не найден: /uploader/data/FOTOS/ACCESSORIES/LES ANDRE/Table 8734.jpg Товар: 57343
Файл не найден: /uploader/data/FOTOS/ACCESSORIES/LES ANDRE/Table 8953.jpg Товар: 57348
Файл не найден: /uploader/data/FOTOS/BEDROOM/CINOVA/NINFEA/Cinova_ninfea_bedroom_comodino_noce_f1.jpg Товар: 57895
Файл не найден: /uploader/data/FOTOS/BEDROOM/CINOVA/NINFEA/Cinova_ninfea_bedroom_como_noce.jpg Товар: 57898
Файл не найден: /uploader/data/FOTOS/BEDROOM/CINOVA/NINFEA/Cinova_ninfea_bedroom_letto2_noce_f1.jpg Товар: 57903
Файл не найден: /uploader/data/FOTOS/BEDROOM/CINOVA/NINFEA/Cinova_ninfea_bedroom_mirorr_f1.jpg Товар: 57904
Файл не найден: /uploader/data/FOTOS/ACCESSORIES/LES ANDRE/stand8249.jpg Товар: 59115
Файл не найден: /uploader/data/FOTOS/WALL/POLYWOOD/JOLLY/Jolly white 03 - копия.jpg Товар: 60503
Файл не найден: /uploader/data/FOTOS/DINING ROOM/AGM/Prestige/Prestige_1_komod.jpg Товар: 61605
Файл не найден: /uploader/data/FOTOS/DINING ROOM/AGM/Prestige/Prestige_1_servant_3_stvorki.jpg Товар: 61606
Файл не найден: /uploader/data/FOTOS/DINING ROOM/AGM/Prestige/Prestige_1_stol.jpg Товар: 61610
Файл не найден: /uploader/data/FOTOS/DINING ROOM/AGM/Prestige/Prestige_1_stul.jpg Товар: 61612
Файл не найден: /uploader/data/FOTOS/DINING ROOM/AGM/Prestige/Prestige_1_stul_ruchka.jpg Товар: 61613
Файл не найден: /uploader/data/FOTOS/DINING ROOM/AGM/Prestige/Prestige_1_vitrina_1.jpg Товар: 61614
Файл не найден: /uploader/data/FOTOS/DINING ROOM/AGM/Prestige/Prestige_1_zerkalo.jpg Товар: 61615
Файл не найден: /uploader/data/FOTOS/DINING ROOM/AGM/Prestige/Prestige_1_vitrina_1_ugol.jpg Товар: 61616
0
735 / 476 / 187
Регистрация: 30.12.2012
Сообщений: 1,275
Записей в блоге: 2
13.04.2016, 15:43 4
lion_forest, мой пример подогнан строго под те строки, что вы привели.
Программа работает корректно, если:
1) В строке ровно одна ссылка
2) В строке больше одной ссылки, и они разделены символом ';'
Если у вас в полной версии файла есть какие-либо другие правила размещения ссылок, то они не найдутся. Покажите те места, в которых программа не находит ссылки, а должна.
0
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 15
13.04.2016, 16:07  [ТС] 5
Tsin, проблему я понял, некоторые имена файлов копируются вот так \��� �����-1.jpg, это проблема кодировки, как исправить?
А по количеству все верно, каждая строка обрабатывается
0
735 / 476 / 187
Регистрация: 30.12.2012
Сообщений: 1,275
Записей в блоге: 2
13.04.2016, 16:34 6
lion_forest, у StreamReader вторым параметром можно передавать Encoding. Попробуйте различные варианты.
1
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 15
13.04.2016, 16:53  [ТС] 7
Tsin, спасибо огромное, помогли, решил проблему изменением кодировки исходного файла, теперь проблема со скриптом выгружающим файлы, тоже плохо на имена эти реагирует, но это уже не для этой темы
0
735 / 476 / 187
Регистрация: 30.12.2012
Сообщений: 1,275
Записей в блоге: 2
13.04.2016, 17:07 8
lion_forest, обращайтесь! Создавайте другую и вперёд) Чем смогу - помогу.
0
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 15
14.04.2016, 10:16  [ТС] 9
Tsin, а можете написать программку для копирования названия файлов из вот такого вот файла, единственное что здесь не нужен слэш перед именем файла, тоесть из этих путей записать в новый файл только: имя_файла.расширение
Код
Файл не найден: /uploader/data/FOTOS/DINING ROOM/BETAMOBILI/ottocento italiano/1 - копия (2).jpg Товар: 86082
Файл не найден: /uploader/data/FOTOS/DINING ROOM/BETAMOBILI/ottocento italiano/1 - копия.jpg Товар: 86084
Файл не найден: /uploader/data/FOTOS/DINING ROOM/BETAMOBILI/ottocento italiano/1 - копия (3).jpg Товар: 86085
Файл не найден: /uploader/data/FOTOS/DINING ROOM/Accadueo design/Ancona/2 - ANCONA laquered beige 1 - копия.jpg Товар: 86150
Файл не найден: /uploader/data/FOTOS/DINING ROOM/VILLANOVA/ANGELIKA/Angelica_dinning_room_vitrina_2dv.jpg Товар: 8699
Файл не найден: /uploader/data/FOTOS/DINING ROOM/VILLANOVA/ANGELIKA/Angelica_dinning_room_komod.jpg Товар: 8700
Файл не найден: /uploader/data/FOTOS/DINING ROOM/VILLANOVA/ANGELIKA/Angelica_dinning_room_komod_4dv.jpg Товар: 8701
Файл не найден: /uploader/data/FOTOS/SOFAS/KEOMA/fiorenza/22 - копия.jpg Товар: 89075
Файл не найден: /uploader/data/FOTOS/SOFAS/Relotti/№298 parker 400 (1.jpg Товар: 89327
Файл не найден: /uploader/data/FOTOS/SALE/esterno mobili/фото 3.JPG Товар: 91173
Файл не найден: /uploader/data/FOTOS/SALE/esterno mobili/фото 1.JPG Товар: 91173
0
735 / 476 / 187
Регистрация: 30.12.2012
Сообщений: 1,275
Записей в блоге: 2
15.04.2016, 13:43 10
lion_forest, опять же, точно подогнанный под формат файла пример. Один чих, один лишний пробел - и это перестанет работать.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
static void Main(string[] args)
{
    using (StreamReader sr = new StreamReader("file.txt", Encoding.Default))
    {
        using (StreamWriter sw = new StreamWriter("out.txt"))
        {
            while (!sr.EndOfStream)
            {
                string line = sr.ReadLine();
 
                line = line.Substring(line.LastIndexOf('/') + 1); //Отрезаем строку слева до последнего '/'
                line = line.Substring(0, line.IndexOf(" Товар")); //Отрезаем строку справа
                sw.WriteLine(line);
            }
        }
    }
}
1
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 15
19.04.2016, 10:42  [ТС] 11
Tsin, спасибо, в очередной раз выручаете, все работает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2016, 10:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Из каждой строки текстового файла выделить первые два слова и записать их в отдельный файл
Добрый день! Помогите пожалуйста в решении простенькой задачки, второй день мучаюсь... ( Нужно из...

Переписать в текстовый файл т1 содержимое текстового файла т2 но без пустых строк
написать программу которая переписывает в текстовый файл т1 содержимое текстового файла т2 но без...

Переписать в текстовый файл t1 содержимое текстового файла t2 без пустых строк
Описать процедуру npuce(t1, t2), переписывающую в текстовый файл t1 содержимое текстового файла t2,...

Переписать в текстовый файл t1 содержание текстового файла t2, но без пустых строк
Описать процедуру npuceftl,(2) переписывающую в текстовый файл t1 содержание текстового файла t2,но...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.