С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для Zagibuba
0 / 0 / 0
Регистрация: 16.12.2015
Сообщений: 6

C# чтение одинаковых элементов из большого файла, реализация квадратной матрицы

16.12.2015, 22:43. Показов 1562. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте!, как создать функцию, получающую номер строки и слова в файле, и возвращающую строку типа string, если файл может быть огромным (квадратная матрица размерностью более 1000 элементов), файл имеет вид
1000.01 1000.01 1000.01 ... n
1000.01 1000.01 1022.11 ... n
1000.01 2300.01 1000.01 ... n
.........................................
1000.01 1000.01 1000.01 ... n
если применять чтение построчно sr.ReadLine(), функция не вернет такую большую строку из файла в string, возможно стоит реализовать посимвольное чтение? (не получается никак)
все элементы матрицы имеют одинаковое количество символов.

В перспективе, возможно ли реализовать еще и функцию редактирования подобной матрицы, получающую номер строки, элемента, и новый элемент, и перезаписывающую его?

ps.. есть функция для вывода строки из файла по ее номеру, однако расшарить ее для поиска элемента еще и по строке не удается
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
 private static string poiskslovavslovare(int index)///поиск слова в словаре по номеру (если нет возвращает null)
        {
            string line=string.Empty; 
            string slovo1;
            //int i1 = 0;
            using (StreamReader sr = new StreamReader("data.txt"))
            {
 
                
               
                int i1 = 0;
                while (i1 != index)   
                {
 
                    
                    line = sr.ReadLine(); //читаем по одной линии(строке) 
                    i1++;
                    
 
 
                } slovo1 = line;
 
            } 
            
            return slovo1;
 
        }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2015, 22:43
Ответы с готовыми решениями:

Проверить столбцы квадратной матрицы на наличие одинаковых элементов
необходимо проверить столбцы квадратной матрицы на наличие одинаковых элементов Program Lab2; uses crt,dos; var i,j,n,k:integer; ...

Чтение атрибута из одинаковых элементов XML файла
Есть xml мне необходимо его прочитать. У меня получается получить атрибут определенного элемента. Проблема в том, что если у меня два...

Удаление одинаковых строк из большого файла
Здравствуйте. Подскажите, пожалуйста, как максимально быстро удалить одинаковые строки в большом файле 1кк+ строк. В голову приходит...

3
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
17.12.2015, 00:26
Лучший ответ Сообщение было отмечено Zagibuba как решение

Решение

Цитата Сообщение от Zagibuba Посмотреть сообщение
создать функцию, получающую номер строки и слова в файле, и возвращающую строку типа string
C#
1
2
3
4
5
6
7
8
        string GetWord(string filePath, int iRow, int iCol)
        {
            foreach (var line in File.ReadLines(filePath))
                if (iRow-- == 0)
                    return line.Split(' ')[iCol];
 
            return null;
        }
1
 Аватар для Zagibuba
0 / 0 / 0
Регистрация: 16.12.2015
Сообщений: 6
17.12.2015, 17:56  [ТС]
Спасибо! а можно ли подобной функцией переписать такой элемент, на другое слово, допустим функция получает 2 индекса и значение, и переписывает слово в файле на полученное?

Добавлено через 2 часа 38 минут
поиск значения заработал в таком виде:
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
private static double poiskvesapoindeksam(int index1, int index2)///поиск числа по строке и номеру строки и слова
        {
            
                string line = string.Empty; 
                string slovo1="";
                //double ves = double.Empty;
                //int i1 = 0;
                using (StreamReader sr = new StreamReader("mass.txt"))
                {
 
                    double ves=0;
                   
                    int i1 = 0;
                    while (i1 != index1)
                    {
 
                        
                        line = sr.ReadLine(); //читаем по одной строке
                        i1++;
                        if (i1 == index1)
                            slovo1 = line.Split(' ')[index2];
 
 
                    } ves = Convert.ToDouble(slovo1);
 
                    return ves;
                } 
 
                
 
            
        }
а вот как их можно переписать?
0
 Аватар для Zagibuba
0 / 0 / 0
Регистрация: 16.12.2015
Сообщений: 6
22.12.2015, 22:28  [ТС]
во как
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/****************************************************************************************************/
        private static int izmenitsvyas(int index1, int index2, double novznach1)///ПЕРЕПИСЫВАЕТ СВЯЗЬ 
 
В ТАБЛИЦЕ СВЯЗЕЙ(строка, столбец, новое значение)
        {
            
            string line = string.Empty;
            string stroka = "";
            double novznach = novznach1;
            index2 = index2 - 1;//чтоб нумеровало столбец от нуля
            int yea = 1;
 
            
 
            using (StreamReader sr = new StreamReader("data1.txt"))
            
            {
 
                //int yea = 1;
                
                int i1 = 0;
                while (i1 != index1)
                {
 
 
                    line = sr.ReadLine(); //читаем по одной линии(строке) 
                    i1++;
                    if (i1 == index1)
                    {
                        stroka = line;
                        
                    }
                }
                ////////
                //sr.Close;
            } //sr.Close;
                string[] razbitayastroka = stroka.Split(' ');
                razbitayastroka[index2] = Convert.ToString(novznach);
 
                
                
                string skleenayastroka = "";
                int dlinstroki = razbitayastroka.Length-1;
                //Console.WriteLine(dlinstroki);
                for (int i3 = 0; i3 <= dlinstroki; i3++) 
                    {
                        if (i3 < dlinstroki)
                        {
                            skleenayastroka = skleenayastroka + razbitayastroka[i3] + " ";
                        }
                        else skleenayastroka = skleenayastroka + razbitayastroka[i3];
                          
                    }
 
                    
///////////////////////////////////////////////////////////
                    string[] glavniymassivstrochek = System.IO.File.ReadAllLines("data1.txt");
                    //index1 = index1 - 1;//чтоб нумеровало строки от нуля
                    glavniymassivstrochek[index1-1] = skleenayastroka;//переписывает изменяемую 
 
строчку в массиве
                    //File.Close;
//////////////////////////////////////////////////////////
                   
                    StreamWriter str10 = new StreamWriter("data1.txt");
                    for (int i10 = 0; i10 <= dlinstroki-1; i10++)
                    {
                        str10.WriteLine(glavniymassivstrochek[i10]);
                        //Console.WriteLine(glavniymassivstrochek[i10]);
                    }
                    str10.Close();
 
 
 
 
                    return yea;
 
            }
        
 
/****************************************************************************************************/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.12.2015, 22:28
Помогаю со студенческими работами здесь

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

Чтение элементов матрицы из текстового файла
Народ очень нужна помощь решить следующую задачу!: Необходимо составить следующие подпрограммы (процедуры или функции):1)Чтение элементов...

Чтение большого файла в нескольких потоках
Здравствуйте, товарищи! недавно начал изучать многопоточность в C#. заинтересовался такой темой как чтение и обработка большого файла...

Быстрое чтение большого файла. Зависает процесс
Всем доброго времени суток. Есть задача прочитать файл(1-20 мб), который состоит из слов разделённых пробелами для того, чтобы переписать...

Чтение бинарного файла большого объема (300 Гб)
Добрый день, Мне необходимо считывать каждые 996-1000 байты формата int из файла объемом 300 Гигабайт и делать так пока не достигну...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru