Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 33

Найти и считать из файла все от известной строки до пустой

27.01.2014, 03:04. Показов 3020. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте!
Пытаюсь реализовать в программе поиск данных по txt-файлу.

Есть txt-файл с кучей данных, при чем записанных без определенной формы:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
[rel]
1=25
2=25
3=26
4=24
5=26
6=25
 
Norm=1.0
 
[Analys]
Pb=0,3
Mg=0.2,3
Нужно, чтобы программа нашла строчку [rel] , и считала все строчки внизу по очереди пока не дойдет до пустой строки. Дальше отделила значения "25/25/26/24/26/25" от нумеровки "1=" и записала значения в текстбоксы. Потом нашла надпись "Norm" и считала ее значение, ну а потом [Analys] - так же как и в первом случае (строчки вниз до пустой), но значение здесь 0 и 0.2 , а после запятой 3 считывать не надо.

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

VB.NET
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
 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim FI As IO.FileInfo = New IO.FileInfo("C:\Users\Desktop\WindowsApplication2\Inm.txt")
        If FI.Exists Then
            MsgBox("True")
        Else
            MsgBox("False")
        End If
        Try
            Dim sr As StreamReader = New StreamReader("Inm.txt")
            Dim line As String
 
            ' TextBox1.Text = My.Computer.FileSystem.ReadAllText("C:\Users\Desktop\WindowsApplication2\Inm.txt", System.Text.Encoding.GetEncoding(1251)) 
 
            If line.ToUpper.StartsWith("[re]") Then
                sr.ReadLine()
Until sr.Readline Nothing
                MsgBox("" & line & "")
            End If
            '    Do
            '        line = sr.ReadLine()
            '        MsgBox("" & line & "")
            '    Loop
            '    sr.Close()
 
        Catch ex As Exception
            MsgBox("couldn't be read")
 
        End Try
Добавлено через 7 часов 6 минут
Может вот так вод будет понятнее выглядить))
VB.NET
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
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim FI As IO.FileInfo = New IO.FileInfo("C:\Users\Desktop\WindowsApplication2\Inm.txt")
If FI.Exists Then
MsgBox("True")
Else
MsgBox("False")
End If
Try
Dim sr As StreamReader = New StreamReader("Inm.txt")
Dim line As String
 
' TextBox1.Text = My.Computer.FileSystem.ReadAllText("C:\Users\Desktop\Windows Application2\Inm.txt", System.Text.Encoding.GetEncoding(1251)) 
 
If line.ToUpper.StartsWith("[re]") Then
sr.ReadLine()
Until sr.Readline Nothing
MsgBox("" & line & "")
End If
' Do
' line = sr.ReadLine()
' MsgBox("" & line & "")
' Loop
' sr.Close()
 
Catch ex As Exception
MsgBox("couldn't be read")
 
End Try
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.01.2014, 03:04
Ответы с готовыми решениями:

Считать все строки из файла и занести данные в RichTextBox
int i = 0; string f = File.ReadAllLines("Resalt.dat"); string j = f.Split(new char { ',' }); richTextBox1.Text = j; ...

Считать строки из файла, найти строки на определённую букву
По заданию нужно вывести данные студентов, чьи фамилии начинаются на А и математику сдали на 8 или 9. Проблема в поиске фамилии на А,...

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

26
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
04.02.2014, 14:03
Студворк — интернет-сервис помощи студентам
Брось проект целиком посмотрю и тестовый файл прицепить не забудь.
0
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 33
05.02.2014, 13:50  [ТС]
PAnTop, вот проект с тестовым файлом, величины считываются в текстбокс, должен найти [rel] и считать вниз данные (пример 1=285.269) но в текстбокс идет только 285.269! далее находит Norm= и считывает ее значение, далее [nuc] и считывает их значения ...!но после значения стоит ",8" и тд, которые считываеть не надо..пыталась с помощью split - но тоже пока горит((

IniReader.7z
0
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
05.02.2014, 21:09
Твой проект у меня не открылся, видимо у тебя стоит более новая VS. Накатал простенький пример который показывает работу с ini файлами, надеюсь это тебе поможет разобраться.
Вложения
Тип файла: zip IniReader1.zip (80.9 Кб, 6 просмотров)
1
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 33
10.02.2014, 12:47  [ТС]
PAnTOP, спасибо огромное за пример! Пытаюсь теперь понять как сделать без секции и ключа, чтобы просто в ячейку значение передавалось и все)
вот это, исходя из примера, пока работать не хочет (((

VB.NET
1
2
3
4
5
6
7
8
9
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Value2 As String
        Value2 = GetKeyIni("lce.ini", "nuc", "1")
        Dim Value22() As String
        Value22 = Value2.Split(",")
        TextBox2.Text = Value22(0)
 
        ' TextBox2.Text = GetKeyIni("rel", "1", "/lcE.ini")
    End Sub
0
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
10.02.2014, 14:29
А у тебя точно в секции "nuc" есть ключ "1"?
А то у тебя в закоментированной строчке стоит секция "rel"
0
0 / 0 / 0
Регистрация: 05.05.2011
Сообщений: 33
10.02.2014, 16:33  [ТС]
PAnTOP, oй-ей, Вы правы, невнимательность - мой порок))
Исправила , но результата не принесло, не хочет все равно работать!!((
VB.NET
1
2
3
4
5
6
7
8
9
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Value2 As String
        Value2 = GetKeyIni("/lcE.ini", "rel", "1")
        Dim Value22() As String
        Value22 = Value2.Split(",")
        TextBox2.Text = Value22(0)
 
        ' TextBox2.Text = GetKeyIni("rel", "1", "/lcE.ini")
    End Sub
0
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
10.02.2014, 17:21
Пропиши полный путь до файла, например:
Visual Basic
1
Value2 = GetKeyIni(Application.StartupPath & "\lcE.ini", "rel", "1")
если файл лежит в папке программы
А еще лучше присвой путь до файла переменной и потом везде используй его, как в примере который я тебе дал.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2014, 17:21

С помощью cin.getline считать все строки файла в контейнер (вектор или очередь)
Можете пожалуйсто написать код, где можно с помощью cin.getline считать все строки файла в контейнер (вектор или очередь), потом из...

Считать текст из файла и найти в нем все палиндромы
В произвольном тексте (взятом из файла), содержащем не более 10 строк, в каждой строке не более 80 символов (текст вывести на экран), найти...

Считать массив из файла и найти максимальные элементы каждой строки
Двухмерный целочисленный массив задан текстовым файлом stdin.txt. В каждой строке этого файла записаны строки массива, в котором элементы...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru