Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 09.02.2010
Сообщений: 8
1

Прочитать данные из файла в матрицу с указанной позиции

20.04.2010, 21:56. Просмотров 1114. Ответов 9
Метки нет (Все метки)

"дата 16.09.03 время 0:03:28
число точек 6144 частота 0616000
станция радиостация
дискретность 50
Ф.И.О. оператора
калибровка 2207
имя файла d:\EXP2002\16_9 0_3_1
примечание
95 -641
-266 679
411 -1009
895 -390
927 367
363 935
-441 943
-977 430
-993 -274
-501 -834
287 -897
887 -394
963 367
431 971
-401 990
-997 462
-1041 -314
-501 -897
303 -906
943 -385"

помогите прочитать данные из файла. Так, чтобы числовые данные были занесены в матрицу. Второй день бьюсь, никак не могу занести данные в матрицу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2010, 21:56
Ответы с готовыми решениями:

Прочитать файл в обратном порядке т.е. встать в конец файла и прочитать до начальной позиции
подскажите пожалуйста как можно прочитать файл в обратном порядке т.е. стать в конец файла и...

Вывести на экран матрицу с указанной пользователем позиции
Двумерный динамический массив. Написать программу, которая выводит на экран массив с указанной...

Дан текстовый файл содержащий матрицу чисел ращмером m*n. Прочитать данные из файла
дан текстовый файл содержащий матрицу чисел ращмером m*n X x x x X x x x X x x x X x x x...

Принять данные по UART, начиная с указанной позиции
Приветствую! Работаю в AtmelStudio 7 с мк Atmega8 Как можно организовать получение данных с...

9
3073 / 2394 / 255
Регистрация: 11.03.2009
Сообщений: 5,444
21.04.2010, 08:40 2
Как вариант, можно перед числами вставить какую-либо строку-метку и читать файл пока не встретится эта метка.
0
230 / 60 / 17
Регистрация: 11.03.2010
Сообщений: 294
21.04.2010, 08:52 3
да, kazak правильно говорит. Ставишь метку начала данных, которые нужно тебе прочитать, перемещаешь указатель до метки, и начинаешь считывать, что тебе нужно...
0
0 / 0 / 0
Регистрация: 09.02.2010
Сообщений: 8
21.04.2010, 09:55  [ТС] 4
Цитата Сообщение от kazak Посмотреть сообщение
Как вариант, можно перед числами вставить какую-либо строку-метку и читать файл пока не встретится эта метка.
да, так можно. Но у меня подобных файлов для прочтения очень много. Если кто знает, подскажите поконкретнее используя какие команды и функции можно это сделать

Добавлено через 1 минуту
Цитата Сообщение от Hell Knight Посмотреть сообщение
да, kazak правильно говорит. Ставишь метку начала данных, которые нужно тебе прочитать, перемещаешь указатель до метки, и начинаешь считывать, что тебе нужно...
Подскажите как можно поставить эту метку.
0
230 / 60 / 17
Регистрация: 11.03.2010
Сообщений: 294
21.04.2010, 10:00 5
я точно незнаю есть ли средства сканирования в С++, на крайний случай можно написать эту функцию... в ней нужно будет проделать следующее:
1) читаем следующий байт ()
2) сравниваем с эталоном(меткой)
3) если не равно метки, то читаем следующий (goto пункт 1)
4) если всё же равно, значит мы достигли начала наших данных
после выходим из функции...
указатель в файле установлен на начало данных... далее просто считываем что нужно

Добавлено через 1 минуту
за метку можно взять какой-нибудь символ, ну например можно взять символ "#" или допустим "$"
ну что уж наверняка не встретится у вас в файле...
и потом при сканировании будешь сравнивать не равен ли прочитанный байт этому символу...
0
0 / 0 / 0
Регистрация: 09.02.2010
Сообщений: 8
21.04.2010, 10:32  [ТС] 6
У меня нет возможности вставлять метку в файл. Все что мне нужно, этото как переместить указатель считывания на 9 строку,.
0
230 / 60 / 17
Регистрация: 11.03.2010
Сообщений: 294
21.04.2010, 10:39 7
ну если извезтна строка... то это в корне меняет!
значит ищещь в качестве метки 9-ый символ с кодом 0x0A

З.Ы. точнее 8-ой)))
это символ начала строки

Добавлено через 2 минуты
т. е. тебе нужно будет еще их подсчитывать...
сканируешь и проверяешь если это уже 8-ой по счету такой символ, значит прекращаем поиск...
0
3073 / 2394 / 255
Регистрация: 11.03.2009
Сообщений: 5,444
21.04.2010, 14:57 8
Можно объявить буферную строку, и считать в нее в цикле 8 строк функцией fgets(C) или ifstream::get(C++), а дальше будут твои данные.
0
0 / 0 / 0
Регистрация: 09.02.2010
Сообщений: 8
21.04.2010, 22:16  [ТС] 9
Цитата Сообщение от kazak Посмотреть сообщение
Можно объявить буферную строку, и считать в нее в цикле 8 строк функцией fgets(C) или ifstream::get(C++), а дальше будут твои данные.
спасибо вам всем, все сработало. Но появился второй вопрос, как можно определить матрицу, когда количество строк заранее неизвестно?
0
3073 / 2394 / 255
Регистрация: 11.03.2009
Сообщений: 5,444
22.04.2010, 04:04 10
Запоминаем позицию данных, считываем файл также построчно до конца, попутно подсчитывая сколько строк считали. Создаем динамический массив. Сбрасываем флаги состояния файла, возвращаемся на сохраненную позицию.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2010, 04:04

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

как прочитать строку из файла с заданой позиции
Подскажите как прочитать строку из файла с заданой позиции или как прочитать конкретную строку из...

Перенос подстроки с указанной позиции предложения начиная с другой позиции
Нужна помощь Нужно перенести определенное слово с одной позиции на другую. Я написал такой код...

Из файла необходимо прочитать записи, установить ключи, позиции и количество записей
Из файла необходимо прочитать записи, установить ключи, позиции и количество записей это делаю вот...

Из файла F1 прочитать матрицу A (10,20)
Из файла F1 прочитать матрицу A (10,20). Вычислить сумму элементов каждой строки, записать в...


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

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

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