Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/10: Рейтинг темы: голосов - 10, средняя оценка - 4.50
Hralain
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
1

Разбить файл на строки, а строки - на подстроки

10.12.2013, 20:50. Просмотров 1853. Ответов 8
Метки нет (Все метки)

Подскажите пожалуйста. У меня есть файл. В нем много строк. Суть в том, что в этих строках после символа ^^ идет дата формата ЧЧ.ММ.ГГ. Получается "ненужный текст^^ЧЧ.ММ.ГГ;ненужный текст". Так вот, как этот файл считать в переменную, разделить по строкам, и найти в строке нужный символ, чтобы потом от него отсчитывая я смог сравнить дату с нужной мне, для того чтобы подходящие строки добавить в другой файл. Также выбирать файлы нужно будет вручную, прошу показать взаимодействие с компонентами FileDialog, со скриншотами, если не сложно, и с объяснениями строчек.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 20:50
Ответы с готовыми решениями:

Разбить строки в файле на подстроки и записать в новые файлы
добрый вечер..., у меня такая задача: вот текст, жа_алда о аллах. жа_арбак...

Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если...

Как прочитать текстовый файл построчно и каждую строку разбить на подстроки
Как прочитать текстовый файл в C# следующего формата: Число строк x y a s...

Разделение строки на подстроки
Есть строка, состоящая с трёх частей. Вот, как она выглядит: Переменная =...

Разделение строки на подстроки
Здравствуйте, передаю строку от клиента к серверу Она имеет такую структуру:...

8
Andrew_qb
138 / 138 / 35
Регистрация: 04.06.2011
Сообщений: 565
10.12.2013, 22:10 2
Вы бы лучше дали пример текста, можно с помощью регулярных выражений.
0
Hralain
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
10.12.2013, 23:37  [ТС] 3
Пример текста
1_operator_2^0000001^^12.02.13 выполнено 12%
2_operator_3^00000010^^15.05.13 выполнено 27%
1_operator_2^0000001^^02.12.12 выполнено 03%
1_operator_1^0000001^^27.08.13 выполнено 13%
3_operator_4^000078891^^19.11.13 выполнено 67%
0
Andrew_qb
138 / 138 / 35
Регистрация: 04.06.2011
Сообщений: 565
10.12.2013, 23:44 4
C#
1
2
3
4
5
6
7
            string text = "1_operator_2^0000001^^12.02.13 выполнено 12% 2_operator_3^00000010^^15.05.13 выполнено 27% 1_operator_2^0000001^^02.12.12 выполнено 03% 1_operator_1^0000001^^27.08.13 выполнено 13% 3_operator_4^000078891^^19.11.13 выполнено 67% ";
            Match search = Regex.Match(text, @"\^\^(\d*\.\d*\.\d*)"); //в переменной с помощью регулярного выражения ищём совпадения
            while (search.Success)//пока есть совпадения цикл жив
            {
                MessageBox.Show(search.Groups[1].Value);//группа это то что в скобках (\d*\.\d*\.\d*)
                search = search.NextMatch();//след совпадение
            }
к примеру вот так
1
Hralain
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
11.12.2013, 07:24  [ТС] 5
А если у меня этих строчек 30000, не буду же я их каждую тут вписывать. Должна быть команда типа EOF и Split.
0
Andrew_qb
138 / 138 / 35
Регистрация: 04.06.2011
Сообщений: 565
11.12.2013, 08:07 6
Файл считай в переменную.
0
Hralain
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
11.12.2013, 19:23  [ТС] 7
Я это и хочу. Напишите команду (только полную строчку, а не одно слово)
0
Евгений В
876 / 645 / 130
Регистрация: 01.03.2010
Сообщений: 1,213
11.12.2013, 19:43 8
Цитата Сообщение от Hralain Посмотреть сообщение
Я это и хочу. Напишите команду (только полную строчку, а не одно слово)
C#
1
2
3
4
5
6
7
8
9
      // Получение строк 
           string path = @"C\text.txt"; 
           char[] separatorLines={'.', '!', '?'}; // может, чего упустил
           string[] lines = File.ReadAllText(path, Encoding.Default).Split(separatorLines, StringSplitOptions.RemoveEmptyEntries);
 
  // разбить первую строку (например, если она будет) на элементы
 
           char[] separatorWords = { ' ', ',', ':' };
           string[] element = lines[0].Split(separatorWords, StringSplitOptions.RemoveEmptyEntries);
Добавлено через 6 минут
Извиняюсь. Плохо посмотрел начало топика.
замените

C#
1
char[] separatorWords = { ' ', ',', ':' };
на
C#
1
char[] separatorWords = { '^', ' ' };
Получится массив (element) из трех элементов.
Третий элемент - ваш.
0
Hralain
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 21
12.12.2013, 21:21  [ТС] 9
А зачем разбивать строчку на элементы? Неужели нельзя просто как в VB6 комадой-аналогом InStr() найти ^^ и уже от них отталкиваясь командой-аналогом Mid() сравнивать числа? Или в С# нет таких команд-аналогов?
0
12.12.2013, 21:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2013, 21:21

Разделение строки на подстроки
Ребят, прошу отнеситесь серьезно помогите мне! Я делаю рейтинг в string...

Удаление подстроки из строки
//Метод удаляет введённую подстроку из строки static string...

Разбиение строки на подстроки
Здравствуйте. Помогите, пожалуйста, разбить строку 5 |...


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

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

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