Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.51/47: Рейтинг темы: голосов - 47, средняя оценка - 4.51
3 / 3 / 1
Регистрация: 03.05.2011
Сообщений: 35
1

Разбить методом Split каждую строку файла по пробелу или табуляции

25.06.2011, 09:04. Показов 9394. Ответов 7
Метки нет (Все метки)

Как к каждой строчке в текстовом файле, применить следующий метод:
C#
1
string.Split(new char[] { ' ', '\t' }, 2, StringSplitOptions.RemoveEmptyEntries);
?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2011, 09:04
Ответы с готовыми решениями:

Разбить строку методом Split
Добрый вечер. Имеется файл (0 ; 0) ( 2,5; 0) ( 0;1) ( ...

Разбить строку на подстроки методом Split без учета переноса строк
Здравствуйте. string arr1 =...

Аналог Split() из JS/C#, или как разбить строку по подстроке в c++ builder
Мне нужно разбить строку AnsiString на массив, разделителем должен служить не символ, а другая...

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

7
3 / 3 / 1
Регистрация: 03.05.2011
Сообщений: 35
25.06.2011, 09:22  [ТС] 2
Извините, я не до конца выразил мысль того, что мне надо сделать.

Есть текстовый файл:
Код
любойТекст1   любойТекст1 любойТекст1
любойТекст2         любойТекст2       любойТекст2
В этом текстовом файле, нужно оставить только один пробел между двумя первыми словами в строке.
То есть по сути, нужно применить этот метод к каждой строчке в тестовом фале:
C#
1
string.Split(new char[] { ' ', '\t' }, 2, StringSplitOptions.RemoveEmptyEntries);
Как это сделать?
0
3 / 3 / 1
Регистрация: 03.05.2011
Сообщений: 35
25.06.2011, 10:18  [ТС] 3
black_cat Большое спасибо!
Если можно, еще одни вопросик: как после применения метода Split в текстовом файле, применить метод Trim(), что бы удалить лишний пробел в конце строки?
0
Заблокирован
25.06.2011, 10:33 4
Может быть так?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
           string path = @"d:\test.txt";
            string[] readText = System.IO.File.ReadAllLines(path);
            System.IO.File.Delete(path);
            foreach (string s in readText)
            {
                var v = s.Split(new char[] { ' ', '\t' }, 2, StringSplitOptions.RemoveEmptyEntries);
                using (System.IO.StreamWriter file = new System.IO.StreamWriter(path, true))
                {
                    foreach(string str in v)
                        file.Write(str.Trim() + " ");
                    file.WriteLine();
                }
 
 
            }
Добавлено через 6 минут
А еще лучше так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
            string path = @"d:\test.txt";
            string[] readText = System.IO.File.ReadAllLines(path);
            System.IO.File.Delete(path);
            foreach (string s in readText)
            {
                var v = s.Split(new char[] { ' ', '\t' }, 2, StringSplitOptions.RemoveEmptyEntries);
                using (System.IO.StreamWriter file = new System.IO.StreamWriter(path, true))
                {                   
                    file.WriteLine(v[0].Trim() + " " + v[1].Trim());
                }
 
 
            }
0
3 / 3 / 1
Регистрация: 03.05.2011
Сообщений: 35
25.06.2011, 10:47  [ТС] 5
fenics* неа, так не получится. Потому что:
Первый способ:
C#
1
file.Write(str.Trim() + " ");
Здесь то все равно добавляется пробел в конец строки.
Второй способ:
C#
1
file.WriteLine(v[0].Trim() + " " + v[1].Trim());
В строке может быть только одно слово. Если этот так v[1].Trim() получается IndexOutOfRangeException
0
Заблокирован
25.06.2011, 11:06 6
McG, я не понял. А что не так? пробел я так понял во второй строке. Что бы не писать лишний .Trim()
C#
1
file.WriteLine(v[0]+ " " + v[1].Trim());
Добавлено через 6 минут
Понял, что ты хотел сказать. Когда разбиваем используя разделители получается две строки и поэтому всё в диапазоне. У меня работает. Проверял.
0
3 / 3 / 1
Регистрация: 03.05.2011
Сообщений: 35
25.06.2011, 11:43  [ТС] 7
Цитата Сообщение от fenics* Посмотреть сообщение
Когда разбиваем используя разделители получается две строки
А если в строке текстового файла только одно слово? На две строки используя разделители его не разобьешь. Поэтому v[1].Trim() приводит к IndexOutOfRangeException.
0
Заблокирован
25.06.2011, 12:05 8
Цитата Сообщение от McG Посмотреть сообщение
А если в строке текстового файла только одно слово?
Все понял)
C#
1
2
3
4
5
6
7
8
9
10
11
12
            string path = @"d:\test.txt";
            string[] readText = System.IO.File.ReadAllLines(path);
            System.IO.File.Delete(path);
            foreach (string s in readText)
            {
                var v = s.Split(new char[] { ' ', '\t' }, 2, StringSplitOptions.RemoveEmptyEntries);
                using (System.IO.StreamWriter file = new System.IO.StreamWriter(path, true))
                {
                    file.WriteLine(string.Join(" ",v));
                }
                
            }
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2011, 12:05

Как в каждую строку(130 000 строк) txt-файла добавить символ табуляции (TAB) после первого значимого пробела (SPACE)?
Как в каждую строку большого(130 000 строк) txt-файла добавить символ табуляции (TAB) после первого...

Разбить каждую строку файла на слова, и занести их в двумерный массив
Есть одномерный массив со считанными данными из файла .txt. Нужно было разбить каждую строку на...

Разбить строку на подстроки по пробелу
Задача следующая, есть переменная по сути хранящая в себе два слова в формате: ххх...х х...х. Как...

Strtok как разбить строку пополам по первому пробелу?
Есть вот такая строка: 28 -1.221636 -1.183837 32.839973 0.885457 -0.348518 -0.307412 0.357200...

Как разбить строку через Split по переносам на новую строку?
У меня есть строка (string file), которая выглядит так, как на фото. Как её разбить по переносам на...

Split. Разбить строку =3+4-5*(4+9)
Как можно разбить строку =3+4-5*(4+9) в string?


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

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

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