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

Распарсить текстовый файл с помощью Split

14.07.2015, 13:14. Просмотров 805. Ответов 14
Метки нет (Все метки)

К примеру у меня есть ID, имена, номера которые я уже открыл в программе, и мне нужно при определенной команде читались только буквы до пробела.
1.John 93333312
2.Snow 93123123
3.Ned 93121211
4.Stark 93111122
5.Teon 934444411
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2015, 13:14
Ответы с готовыми решениями:

Метод split и текстовый файл
Подскажите: Дан текстовый файл, состоящий из одной строки. Строка файла содержит числа,...

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

Распарсить текстовый файл
Привет всем. Есть файл 1.txt . В нем строки table2495gjbo4 table240gb354 //98 table24g3545...

Распарсить текстовый файл
Есть текстовый файл. Вот пример его содержания: Как сделать так, чтоб в файле удалилось всё,...

14
10 / 10 / 5
Регистрация: 18.01.2012
Сообщений: 48
14.07.2015, 13:32 2
Можно так. Читаем строку. потом берем левую часть от пробела, а вторым split берем то что справа от '.'
C#
1
2
string s = "1.John 93333312";
string sResult = (s.Split(' ')[0]).Split('.')[1];
0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 20
14.07.2015, 14:01  [ТС] 3
ок посмотрю

Добавлено через 17 минут
не получилось(
0
10 / 10 / 5
Регистрация: 18.01.2012
Сообщений: 48
14.07.2015, 14:07 4
а что не так? Если я все правильно понял, то есть файл, в котором строки в формате id.Name number. Оттуда нужно вытащить только Name. Или как-то не так ?
1
10 / 10 / 5
Регистрация: 20.04.2014
Сообщений: 161
14.07.2015, 14:13 5
a_d_kok, Вот еще вариант:
C#
1
2
3
4
5
6
7
8
9
10
string str = "John 93333312";
            string substr = "93333312";
            string check ="";
            int index = str.IndexOf(" ", 0)+1;
                check=str.Substring(index,str.Length-index);
                if(substr==check)
                {
                    check = str.Substring(0, index-1);
                }
                Console.WriteLine(check);
0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 20
14.07.2015, 14:34  [ТС] 6
да, но когда открываю программу консоль остается чистой вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int counter = 0;
            string line;
 
           
            System.IO.StreamReader file =
                new System.IO.StreamReader(@"C:\test.txt");
            while ((line = file.ReadLine()) != null)
            {
                System.Console.WriteLine(line);
                counter++;
            }
            
                file.Close();
            System.Console.WriteLine("There were {0} lines.", counter);
            System.Console.ReadLine();
            string s = "1.John 93333312";
            string sResult = (s.Split(' ')[0]).Split('.')[1];
Добавлено через 11 минут
попробовал этот вариант

C#
1
2
3
4
5
6
string str = strr.ReadLine();
            strr.Dispose();
            char divider = ' ';
            string[] words = str.Split(divider);
            Console.WriteLine("{0} слов в тексте:", words.Length);
            foreach (string s in words)
0
1354 / 802 / 434
Регистрация: 14.04.2015
Сообщений: 3,038
14.07.2015, 14:57 7
потому что добавьте в конце вот это =)
C#
1
2
   Console.WriteLine(sResult);
            Console.ReadKey();
0
10 / 10 / 5
Регистрация: 18.01.2012
Сообщений: 48
14.07.2015, 14:59 8
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 static void Main(string[] args)
        {
            
            string line;
            int counter = 0;
            System.IO.StreamReader file =  new System.IO.StreamReader(@"с:\test.txt");
            while ((line = file.ReadLine()) != null)
            {
                string sResult = (line.Split(' ')[0]).Split('.')[1];                
                System.Console.WriteLine(sResult);
                counter++;
            }
            System.Console.WriteLine("There were {0} lines.", counter);
            file.Close();
            Console.ReadKey();
        }
1
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 20
14.07.2015, 15:14  [ТС] 9
оо спасибо логику понял))
0
2209 / 1675 / 503
Регистрация: 02.08.2011
Сообщений: 4,817
15.07.2015, 06:47 10
Странная у вас логика: сначала читаете из файла, потом проверяете - есть ли он вообще.
Как вариант, можно:
1. Запросить номер строки
2. Затем вызвать метод System.IO.File.ReadAllLines - прочитать все строки.
3. Проверить на допустимость номера.
4. Если подходит - вытащить строку по индексу (номер -1) и Split.
5. Profit

Не по теме:


5. Stinky*

0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 20
15.07.2015, 06:50  [ТС] 11
я только начал учить C# и дз дали чтение файла, чтение определенной строки, разделение строки, чтение только имени, чтение номеров
0
2209 / 1675 / 503
Регистрация: 02.08.2011
Сообщений: 4,817
15.07.2015, 06:53 12
Цитата Сообщение от a_d_kok Посмотреть сообщение
чтение определенной строки
Чтение n-ой строки - n раз вызвать метод StreamReader.Readline, то тут нельзя заранее проверить корректность номера, так как в файле может не содержаться n строк.
0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 20
15.07.2015, 07:07  [ТС] 13
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (File.Exists(@"E:\test.txt") == false)
            {
                StreamWriter strwr = new StreamWriter(@"E:\test.txt");
                for (int i = 1; i < 50000; i++)
                {
                    strwr.WriteLine(i);
                }
                strwr.Close();
                strwr.Dispose();
            }
            Console.WriteLine("Введите номер строки:");
            int n = Convert.ToInt32(Console.ReadLine());
            StreamReader strr = new StreamReader(@"E:\test.txt");
            for (int ii = 1; ii < n; ii++)
            {
                strr.ReadLine();
            }
            string str = strr.ReadLine();
            strr.Dispose();
Определенная строка, сейчас нужно читались только буквы и я понял что при помощи Split можно это сделать н-р: test.split (" ", " " ); но я не смог их синхронизировать

Добавлено через 2 минуты
Пример который я ввел наверху это и есть данные в тексте
0
59 / 59 / 54
Регистрация: 19.02.2012
Сообщений: 262
15.07.2015, 08:55 14
если я вас правильно понял, то должно получиться следующее:
C#
1
2
3
4
5
6
7
8
9
10
11
12
            int n = Convert.ToInt32(Console.ReadLine());
            string[] mas = File.ReadAllLines("Test.txt");
            if (mas.Length - 1 >= n)
            {
                string[] s = mas[n - 1].Split(new char[] { '.', ' ' });
                Console.WriteLine(s[1]);
            }
            else
            {
                Console.WriteLine("Некорректный введенный номер");
            }
            Console.ReadLine();
0
2209 / 1675 / 503
Регистрация: 02.08.2011
Сообщений: 4,817
15.07.2015, 09:08 15
Цитата Сообщение от ioane Посмотреть сообщение
if (mas.Length - 1 >= n)
(mas.Length >= n)

Добавлено через 6 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
int n = Convert.ToInt32(Console.ReadLine());
            string[] mas = File.ReadAllLines("Test.txt");
            if (mas.Length >= n)
            {
                string[] s = mas[n - 1].Split(new char[] {' '})[0].Substring(2);
                Console.WriteLine(s[1]);
            }
            else
            {
                Console.WriteLine("Некорректный введенный номер");
            }
            Console.ReadLine();
Думал, сам напишешь. )
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.07.2015, 09:08

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

Распарсить текстовый файл
t=-100 t=-75 t=-50 t=0 t=50 t=100 t=300...

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

Распарсить текстовый файл
помогите пожалуйста допустим у нас есть текстовый документ list.txt в котором есть некая база ...

Распарсить текстовый файл и записать все числа в массив
Вообщем, есть txt файл, например, типа: бла бла бла бла 1333.78 бла бла (1 строка) бла бла бла...


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

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

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