Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/23: Рейтинг темы: голосов - 23, средняя оценка - 4.78
12 / 12 / 5
Регистрация: 06.03.2012
Сообщений: 182
1

Обработка информации текстового файла

24.03.2012, 17:14. Показов 4346. Ответов 39
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется текстовый файл, содержащий следующее (тут только три первые строчки, так их там очень много):
-966.0 664.0 0.0001 0.0 0.0 1.0 0.993 -976.0 664.0 0.0001 0.0 0.0 1.0 0.987 -966.0 674.0 0.0001 0.0 0.0 1.0 1.0 -976.0 674.0 0.0001 0.0 0.0 1.0 0.995 5 1.0
-504.0 -8.0 0.0 0.0 0.0 0.0 0.0 -504.0 -8.0 0.0 0.0 0.0 0.0 0.0 -504.0 -8.0 0.0 0.0 0.0 0.0 0.0 -504.0 -8.0 0.0 0.0 0.0 0.0 0.0 5 0.0
32.0 126.0 14.4375 0.0 0.0 0.0 0.0 48.0 126.0 14.4375 0.0 0.0 0.0 0.0 32.0 110.0 14.4375 0.0 0.0 0.0 0.0 48.0 110.0 14.4375 0.0 0.0 0.0 0.0 13 0.0
...
Каждая строчка состоит из четырех "элементов" (первый и трейтий я выделил жирным, второй и четверты курсивом, последние две цифры в каждой строке(подчеркнутые) меня не интересуют).

Каждый "элемент" имеет по семь цифр (десятичная дробь).

Меня интересуют только первые три цифры в каждом "элементе" (это координаты x y z, но в прочем не важно), получается 12 цифр в строке
т.е. вот эти :
-966.0 664.0 0.0001 0.0 0.0 1.0 0.993 -976.0 664.0 0.0001 0.0 0.0 1.0 0.987 -966.0 674.0 0.0001 0.0 0.0 1.0 1.0 -976.0 674.0 0.0001 0.0 0.0 1.0 0.995 5 1.0
мне нужно получить эти 12 цифр из строки для дальнейшего манипулирования ими (каждую цифру по отдельности из каждой строки), получается в каждой строке 12 переменных
x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4
(и таким же образом для всех строк файла)
допустим я захочу просто их сохранить в текстовый файл, получается первая строчка будет выглядеть так:

-966.0 664.0 0.0001 -976.0 664.0 0.0001 -966.0 674.0 0.0001 -976.0 674.0 0.0001
(и таким же образом для всех строк файла)

я только начинаю программировать, так что пока не очень силен в этом, но подразумеваю, что тут надо использовать массив(двумерный)
помогите пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2012, 17:14
Ответы с готовыми решениями:

Обработка информации из текстового файла
Дан файл формата Р1, Р2, …, Р10 – объемы поставок; x1, x2, …, x20 – объемы потреблений; S1,...

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

Обработка строк символов по информации из текстового файла. Вывести текст словами
Задано некоторое натуральное число k. Требуется вывести весь текст словами (например, при k=5...

Обработка строк символов по информации из текстового файла. Вывести в виде фразы «мне k лет»
Задано некоторое натуральное число k. Требуется вывести весь текст словами (например, при k=5...

39
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
24.03.2012, 17:39 2
1) Цифра и число (в данном случае ГРУППА цифр) - это разные вещи.
2) Массив должен быть трёхмерным - Аrr(номер строки (N), номер группы цифр (4), координата (3)).
1
es geht mir gut
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
24.03.2012, 17:40 3
Цитата Сообщение от Castello2401 Посмотреть сообщение
мне нужно получить эти 12 цифр из строки для дальнейшего манипулирования ими (каждую цифру по отдельности из каждой строки), получается в каждой строке 12 переменных
Я так понимаю, что речь всё-таки идёт о числах, а не о цифрах.
Сразу вопрос: тебе нужно считать данные из текстового файла, найти нужные числа, записать их в переменные, а затем сохранить в отдельном текстовом файле? Я правильно понял?
Числа между собой разделены пробелами?
1
12 / 12 / 5
Регистрация: 06.03.2012
Сообщений: 182
24.03.2012, 19:17  [ТС] 4
Цитата Сообщение от SoftIce Посмотреть сообщение
Я так понимаю, что речь всё-таки идёт о числах, а не о цифрах.
Сразу вопрос: тебе нужно считать данные из текстового файла, найти нужные числа, записать их в переменные, а затем сохранить в отдельном текстовом файле? Я правильно понял?
Числа между собой разделены пробелами?
да да о числах, числа разделены пробелами, нужно сохранить это все в текствоый файл
(в каждой строчке 12 чисел получится)

Добавлено через 1 час 18 минут
помогите написать код
0
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
24.03.2012, 19:37 5
Ты знаешь как в For/Next перебрать все строки файла ??
Если ДА, то знаешь как в строке найти нужные тебе группы цифр ??
0
12 / 12 / 5
Регистрация: 06.03.2012
Сообщений: 182
24.03.2012, 19:43  [ТС] 6
Цитата Сообщение от morgann55 Посмотреть сообщение
Ты знаешь как в For/Next перебрать все строки файла ??
Если ДА, то знаешь как в строке найти нужные тебе группы цифр ??
я только начинаю программировать
0
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
24.03.2012, 19:46 7
Цитата Сообщение от Castello2401 Посмотреть сообщение
я только начинаю программировать
Ты хочешь учиться или просто скатать готовый код ??
0
12 / 12 / 5
Регистрация: 06.03.2012
Сообщений: 182
25.03.2012, 16:47  [ТС] 8
ой кажись я разделом ошибся, мне нужно VB.NET

Добавлено через 19 часов 3 минуты
Так, для начала пожалуйста подскажите как обработать одну строку, присвоить нужные мне числа(12), переменным(12).

Добавлено через 1 час 3 минуты
Цитата Сообщение от morgann55 Посмотреть сообщение
как в строке найти нужные тебе группы цифр ??
подскажите как?!
0
196 / 188 / 9
Регистрация: 14.06.2011
Сообщений: 495
25.03.2012, 16:53 9
К сожелению нет возможности вам все расписать, поэтому дам вам материал как добраться до любого символа в строке.

Раздел 19.1. Строки и символы. Страница 492. Сам постоянно пользуюсь.

Следующий раздел после 19.1. как раз про работу с тестовыми файлами.
Вложения
Тип файла: pdf VBNET3.pdf (5.94 Мб, 127 просмотров)
1
12 / 12 / 5
Регистрация: 06.03.2012
Сообщений: 182
25.03.2012, 17:53  [ТС] 10
kOS_77, спасибо конечно, но я этот раздел Лукина до дыр начитался уже, а также Зибирова, все что касается текста.
Везде пишут как считывать и записывать в файле строки, как это делать для всех строк, я сразу же смог считать все строки файла и присвоить их переменной типа String, а потом запистаь в другой файл. Но это далеко до того что мне нужно.

Вот у меня есть строка (забыли пока что что их сотни) :
-966.0 664.0 0.0001 0.0 0.0 1.0 0.993 -976.0 664.0 0.0001 0.0 0.0 1.0 0.987 -966.0 674.0 0.0001 0.0 0.0 1.0 1.0 -976.0 674.0 0.0001 0.0 0.0 1.0 0.995 5 1.0
как мне присвоить 12 чисел которые мне нужны 12 переменным (типа Single) ?
пожалуйста покажите код такой программы
0
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
25.03.2012, 18:10 11
Цитата Сообщение от Castello2401 Посмотреть сообщение
подскажите как?!
Я не знаю VB.NET, но на пальцах так: сначала проверь сколько пробелов в каждой строке - если ВЕЗДЕ одинаково, то можно будет перебирать строки и по ОДНОЙ схеме находить нужные группы цифр...
0
12 / 12 / 5
Регистрация: 06.03.2012
Сообщений: 182
25.03.2012, 18:22  [ТС] 12
-966.0#664.0#0.0001#0.0#0.0#1.0#0.993###-976.0#664.0#0.0001#0.0#0.0#1.0#0.987###-966.0#674.0#0.0001#0.0#0.0#1.0#1.0###-976.0#674.0#0.0001#0.0#0.0#1.0#0.995#5#1.0
# - это где должен стоять пробел, как видно между "элементами" стоит по три пробела, и так в каждой строке
те кто шарят в VB.NET покажите пожалуйста КАК их перебрать и присвоить 12 переменным 12 нужных мне значений, для начала хотябы для одной строки
0
es geht mir gut
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
25.03.2012, 18:45 13
Используй функцию Split для разбивки строки на массив групп символов с пробелом в качестве разделителя.
1
12 / 12 / 5
Регистрация: 06.03.2012
Сообщений: 182
25.03.2012, 19:17  [ТС] 14
Цитата Сообщение от SoftIce Посмотреть сообщение
Используй функцию Split для разбивки строки на массив групп символов с пробелом в качестве разделителя.
можете показать пример кода?
0
es geht mir gut
11272 / 4756 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
25.03.2012, 19:28 15
Tут посмотри
и тут
1
196 / 188 / 9
Регистрация: 14.06.2011
Сообщений: 495
25.03.2012, 19:31 16
Цитата Сообщение от Castello2401 Посмотреть сообщение
kOS_77, спасибо конечно, но я этот раздел Лукина до дыр начитался уже, а также Зибирова, все что касается текста.
Везде пишут как считывать и записывать в файле строки, как это делать для всех строк, я сразу же смог считать все строки файла и присвоить их переменной типа String, а потом запистаь в другой файл. Но это далеко до того что мне нужно.
Ну не знаю, мне одного этого раздела лукина хватит чтоб считать определенное количество символов и занести их в переменную... было бы желание.

как мне присвоить 12 чисел которые мне нужны 12 переменным (типа Single) ?
показываю пример

переменная один = число1

VB.NET
1
Dim X1 As Single = Число1 '(Другой вопрос где это число находится)
VB.NET
1
2
3
4
5
6
7
Dim Read As New IO.StreamReader("C:\Users\ADMIN\Desktop\проба.txt", System.Text.Encoding.Default)
 'Переменная Read откроет нам файл для чтения
 
Dim X1 As  string = Read.Readline 
' Вот так в переменную Х1 считается Первая строка из указанного файла. Как добраться до 'каждого символа в строке как раз и написано у затертого до дыр Лукина.
'Да чуть не забыл - следует закрывать файл для чтения иначе он будет занят этим процессом и 'не даст почитать другому)))
Read.Close
1
12 / 12 / 5
Регистрация: 06.03.2012
Сообщений: 182
25.03.2012, 19:51  [ТС] 17
Кароче покурив Лукина, и почитва про функцию Split, пришел вот к чему:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Class Form1
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim water_dat As New System.IO.StreamReader("water.dat")
        Dim water As String
        water = water_dat.ReadLine
        Debug.WriteLine(water)
 
        Dim splitmassiv
        splitmassiv = (Split(water))
        Debug.WriteLine(splitmassiv(6))
    End Sub
End Class
Для конечной цели еще очень далеко, но хоть что-то

в Output получаем это:
-966.0 664.0 0.0001 0.0 0.0 1.0 0.993 -976.0 664.0 0.0001 0.0 0.0 1.0 0.987 -966.0 674.0 0.0001 0.0 0.0 1.0 1.0 -976.0 674.0 0.0001 0.0 0.0 1.0 0.995 5 1.0
0.993
0.993 - 6ой элемент массива, все правильно присвоилось, вот только в чем загвоздка

Split(water) разделеят строку по пробелам (один пробел в качесвте делителя), а у меня попадается меставми сразу три пробела и вот тут дальше ничего брать не хочет, получается у меня в массиве только 7мь первых чисел строки
как мне решить эту проблемы с тремя пробелами?
0
67 / 41 / 3
Регистрация: 07.12.2010
Сообщений: 328
25.03.2012, 20:49 18
Replace


Ой, ой, ой. Ошибся. Split тебе поможет
0
169 / 149 / 14
Регистрация: 13.07.2011
Сообщений: 477
25.03.2012, 20:57 19
лучше и быстрее так(в случае с быстротой - то это если много информации в файле) -
VB.NET
1
2
Dim splitmassiv() As String
        splitmassiv = water.Split(" ")
Добавлено через 4 минуты
VB.NET
1
, StringSplitOptions.None)
забыл о втором параметре(или их там 3 с перегрузкой?) не помню
0
12 / 12 / 5
Регистрация: 06.03.2012
Сообщений: 182
26.03.2012, 07:32  [ТС] 20
Блокнот заменил три пробела на один, и получилось, что в строке каждое число(их 30) разделено пробелом, что идеально для сплита, вот код:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Class Form1
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim water_dat As New System.IO.StreamReader("water.dat")
        Dim water As String = water_dat.ReadLine
 
        Debug.WriteLine(water)
 
        Dim waterarray() As String = water.Split
 
        Debug.WriteLine(waterarray(29))
    End Sub
End Class
с 0 по 29 элемент массива все забито числами
(Скрин)

Подскажите теперь как мне создать из этого дву мерный массив (2,6)
где от 0 до 2 это три элемента строки(напомню что один элемент это 7 первых чисел)
а от 0 до 6, это 7 чисел "элемета".
т.е. при обращении в массив моймассив(2,1)
бралось 12ое числе строки

Добавлено через 1 минуту
и есчо, каждый из 30ти элементов массива типа String как мне ковертировать их всех в Single ?
Миниатюры
Обработка информации текстового файла  
0
26.03.2012, 07:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2012, 07:32
Помогаю со студенческими работами здесь

Загрузка информации из текстового файла
Доброго. Коллеги, есть задача загрузить в базу текстовый файл. В нем фрагменты текста, и...

Чтение информации из текстового файла
Здравствуйте! Помогите, пожалуйста, решить задачу. В текстовый файл записаны полные названия...

Использование информации из текстового файла
Задание таково: "Необходимо произвести обработку 15 вещественных чисел: найти среднее...

Считывание информации из текстового файла
Ребят, как считать текст из блокнота с выводом его на экран?? (если можно с комментариями ) ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru