Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 14
Matlab 2015

Чтение текстового файла и запись

24.10.2019, 19:03. Показов 3581. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! помогите разобраться, у меня огромный текстовый файл, в начале содержит текстовые данные, а потом в основном числовые. Мне нужно в тексте находить необходимые мне фразы и записывать их в другой файл, в основном пишет, что я указываю неправильный тип переменных, хотя всё ввожу правильно. Если поможет, то я хочу выводить нужные мне фразы из файла формата Rinex.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.10.2019, 19:03
Ответы с готовыми решениями:

Чтение текстового файла
Добрый день! Есть текстовый файл, который надо прочесть. Фрагмент прикрепляю. Проблема в том, что этот текстовый файл надо прочесть...

Чтение текстового файла
Люди добрые, помогите с одной проблемой разобраться! Есть текстовый файл в с набором данных (см. пример). Проблема состоит в том, чтобы...

Чтение текстового файла
Такой вопрос, не пойму как прочесть текстовый файл, допустим есть текстовый файл находящийся на рабочем столе при помощи команд сперва...

16
 Аватар для Krasme
7247 / 5100 / 2151
Регистрация: 02.02.2014
Сообщений: 13,461
24.10.2019, 19:18
Цитата Сообщение от nibron11 Посмотреть сообщение
из файла формата Rinex
приложите его...
0
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 14
24.10.2019, 20:20  [ТС]
только сокращённый
Вложения
Тип файла: txt RINEX.txt (14.2 Кб, 9 просмотров)
0
 Аватар для Krasme
7247 / 5100 / 2151
Регистрация: 02.02.2014
Сообщений: 13,461
24.10.2019, 21:04
структура файла неоднородная..
что конкретно надо?
Цитата Сообщение от nibron11 Посмотреть сообщение
в тексте находить необходимые мне фразы
например?

один из вариантов чтения файла..
Matlab M
1
2
3
4
clc; clear
ff=importdata('RINEX.txt')
ff.data
ff.textdata
затем можно обрабатывать на свое усмотрение
0
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 14
24.10.2019, 22:06  [ТС]
ну, например мне нужно определить тип данных в файле, в данном файле это M (MIXED), как мне написать, чтобы программа находила этот вариант, ну, или другой и записывала его в другой файл
0
 Аватар для Krasme
7247 / 5100 / 2151
Регистрация: 02.02.2014
Сообщений: 13,461
25.10.2019, 00:07
Лучший ответ Сообщение было отмечено nibron11 как решение

Решение

Matlab M
1
2
3
4
5
6
7
8
9
10
clc; clear
ff=importdata('RINEX.txt')
% ff.data
ff.textdata{1}
expr= 'DATA\s+(.*?)\s+RINEX';
s=regexp(ff.textdata{1},expr,'tokens')
s{1}{1}
fid=fopen('other.txt','wt')
fwrite(fid,['type:' s{1}{1}]);
fclose(fid);
Добавлено через 17 минут
вариант ниже подходит, если не нужны числовые данные
Matlab M
1
2
3
4
5
6
7
8
9
10
clc; clear
ff=fileread('RINEX.txt');
 
expr= 'OBSERVATION DATA\s+(.*?)\s+RINEX';
s=regexp(ff,expr,'tokens')
s{1}{1}
 
fid=fopen('other.txt','wt');
fwrite(fid,['type:' s{1}{1}]);
fclose(fid);
0
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 14
25.10.2019, 20:33  [ТС]
Спасибо большое, помогло!) а можно как то универсально написать, чтобы я не только M (MIXED) мог найти, а в другой строке что то другое и так же записать?
0
 Аватар для Krasme
7247 / 5100 / 2151
Регистрация: 02.02.2014
Сообщений: 13,461
25.10.2019, 20:39
я вам образец дала.. дальше по мере потребности дополняйте код..
0
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 14
25.10.2019, 20:47  [ТС]
хорошо, последний вопрос, а если мы не знаем что находится до нужной нам фразы и после нее мы сможем таким же способом найти то, что нам нужно?
0
 Аватар для Krasme
7247 / 5100 / 2151
Регистрация: 02.02.2014
Сообщений: 13,461
25.10.2019, 20:56
рабочий файл открывается в текстовом редакторе, анализируйте...
если вы кучу таких файлов обрабатываете, то стоит потратить время на анализ и построение алгоритма извлечения инфы..
0
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 14
28.10.2019, 19:52  [ТС]
Кто подскажет, в чём ошибка?
Matlab M
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
>> rinex=fopen('RINEX1.txt','rt');
>> if rinex==-1
error('File is not to opened');
end
>> generalHeader={'week','epoch','flag','prn'};
>> measurementsInterval=-1;
>> while(true)
line=fgetl(rinex);
splitLine=strsplit(line);
if strfind(line,'APPROX POSITION XYZ')
XYZ_station=tokens(str2double(line(1:60)));
XYZ_station{1}{1}
fid=fopen('my_save.txt','a');
fwrite(fid,['XYZ:' XYZ_station{1}{1}]);
fclose(fid);
elseif ~isempty(strfind(line,'SYS / # / OBS TYPES'))
constellation = line(1);
if constellation        == 'G'
hasGps = 1;
elseif constellation    == 'R'
hasGlonass = 1;
elseif constellation    == 'C'
hasBeidou = 1;
end
nObservables = str2double(line(2:7));
observables = splitLine(3:end - 7);
observables = [generalHeader, observables];
if nObservables >13
line2 = fgetl(rinex);
splitLine2 = strsplit(line2);
observables = [observables, splitLine2(2:end - 7) ];
end
observablesHeader{uint8(constellation)} = observables;
elseif strfind(line,'INTERVAL')
measurementsInterval=str2double(line(5:10));
elseif strfind(line,'END OF HEADER');
break;
end
end
Вложения
Тип файла: txt RINEX1.txt (1.6 Кб, 5 просмотров)
0
319 / 258 / 30
Регистрация: 30.03.2013
Сообщений: 755
29.10.2019, 00:54
>> знаки эти из текста программы нужно убрать

и что такое
Matlab M
1
XYZ_station=tokens(str2double(line(1:60)));
то есть что это за функция такая - tokens ?
Ее код нужно приложить, если она есть в наличии
0
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 14
29.10.2019, 20:29  [ТС]
я исправил, там вот так должно быть
Matlab M
1
XYZ_station=real(line(1:60));
но всё равно программа не работает
0
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 14
15.11.2019, 20:30  [ТС]
Подскажите, как мне выписать в другой файл данные, например, в первой строке есть "R13", ему нужно сопоставить 3,4 и 5 строку, потом "G23" и ему 6,7 и 8 строку и так далее. Таких данных как этот файл много и они все в одном файле, и потому как сделать это всё в цикле
Вложения
Тип файла: txt наблюдения.txt (3.1 Кб, 8 просмотров)
0
 Аватар для faraonCar
164 / 144 / 49
Регистрация: 29.10.2014
Сообщений: 738
15.11.2019, 20:39
Алгоритм:
1. Считываете весь файл в Matlab (см. внизу темы).
2. Делаете с данными , что Вам надо.
3. Потом записываете полученные данные в другой файл.
0
0 / 0 / 0
Регистрация: 24.10.2019
Сообщений: 14
15.11.2019, 22:32  [ТС]
так как это сделать?
0
 Аватар для faraonCar
164 / 144 / 49
Регистрация: 29.10.2014
Сообщений: 738
17.11.2019, 16:44
Цитата Сообщение от nibron11 Посмотреть сообщение
так как это сделать?
Считываете весь файл в Matlab
Кликните здесь для просмотра всего текста

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
clc
clear
filename = 'диск:\ваша рабочая папка\наблюдения.txt';
formatSpec = '%14s%2s%14s%2s%14s%16s%s%[^\n\r]';
fileID = fopen(filename,'r');
dataArray = textscan(fileID, formatSpec, 'Delimiter', '', 'WhiteSpace', '', 'TextType', 'string',  'ReturnOnError', false);
fclose(fileID);
raw = repmat({''},length(dataArray{1}),length(dataArray)-1);
for col=1:length(dataArray)-1
    raw(1:length(dataArray{col}),col) = mat2cell(dataArray{col}, ones(length(dataArray{col}), 1));
end
raw

2. Делаете с данными , что Вам надо.
3. Потом записываете полученные данные в другой файл.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.11.2019, 16:44
Помогаю со студенческими работами здесь

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

Чтение текстового файла с запятой в качестве разделителя
Здравствуйте! Помогите, пожалуйста, может кто-нибудь сталкивался с такой проблемой. Изображение у меня сохранено в текстовом файле....

Чтение данных из текстового файла заданной структуры
Помогите, пожалуйста, считать данные из файла. 1-ю строчку нужно пропустить. Все остальные строки имеют одинаковфй формат. Есть...

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

Чтение и запись текстового файла
Проблема в том, что написала самый обычный, самый стандартный код для чтения и записи текстового файла. Во-первых он всегда мне пишет...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru