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

Извлечь только первый столбец из файла в формате txt

26.05.2013, 20:14. Показов 5624. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан документ в формате txt:

ФИО предмет1 прредмет2 предмет3
Гарипова 5 5 5
Колотова 4 4 4
Староверова 3 3 3

Необходимо извлечь только первый столбец из файла в формате txt.
Не могу задать цикл, вот ,что получается:


Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 function b=funcl(a)
k=fopen('spisok.txt','rt'); % открываем текстовый файл  
s1=fgetl(k); % читаем первую строку 
s1=fgets(k,8) % читаем восемь следующих символа (Гарипова)
s2=fgetl(k); % читаем вторую строку
s2=fgets(k,8) % читаем восемь следующих символов (Колотова)
s3=fgetl(k); % читаем третью строку
s3=fgets(k,11) % читаем восемь следующих символов (Староверова)
for j=1:3
    for i=1:12
       c=fprintf(k)
       c=str2num(c)
           end
end
Добавлено через 25 секунд
Подскажите, в чем ошибка?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.05.2013, 20:14
Ответы с готовыми решениями:

Как извлечь из базы данных в формате txt столбец
Как извлечь допустим из базы данных test1 таблица users в таблице users столбец qiwi(в формате txt в столбик прям как в таблице

Поменять местами первый столбец с номером один и первый из столбцов, содержащий только положительные элементы
Дана матрица размера 5 x 10. Поменять местами первый столбец с номером один и первый из столбцов, содержащий только положительные элементы.

Поменять местами первый столбец с номером один и первый из столбцов, содержащий только положительные элементы.
Дана матрица размера 5 x 10. Поменять местами первый столбец с номером один и первый из столбцов, содержащий только положительные элементы.

12
536 / 523 / 38
Регистрация: 13.03.2011
Сообщений: 728
27.05.2013, 11:36
Зачем изобретать велосипед? MATLAB прекрасно считывает такие файлы:
Matlab M
1
2
a = dlmread('Дано.txt', ' ', 1, 1);
a(:,1)
Добавлено через 2 минуты
На всякий случай, поясню:
a(:,1) - оценки всех студентов за Предмет1
a(:,2) - оценки всех студентов за Предмет2
a(:,3) - оценки всех студентов за Предмет3

Добавлено через 5 минут
А что Вы в своем коде пытаетесь сделать в цикле???
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
27.05.2013, 13:12
Sledge5, там не оценки нужны, а строки с фамилиями
я бы предложил в каждой строке считывать файл до первого пробела (знаю? что через... циклы )
Matlab M
1
2
3
4
5
6
7
8
9
10
11
function b=funcl(a)
k=fopen('spisok.txt','rt'); % открываем текстовый файл  
fgetl(k); % читаем первую строку c заголовком
i = 1;
while ~feof(k)
    str = fgetl(k);
    id = findstr(str,' ');
    s{i} = str(1:id(1)-1);
    i = i+1;
end
s
0
536 / 523 / 38
Регистрация: 13.03.2011
Сообщений: 728
27.05.2013, 15:10
Цитата Сообщение от Зосима Посмотреть сообщение
Sledge5, там не оценки нужны, а строки с фамилиями
А str2num зачем?
К тому же первую часть задания (с названиями предметов и фамилиями мы уже обсуждали в другой теме.)
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
27.05.2013, 15:53
Цитата Сообщение от Sledge5 Посмотреть сообщение
А str2num зачем?
Для призыва духов умерших микросхем, очевидно же
Я просто тупо следовал заданию :
Цитата Сообщение от Katrina Swatch Посмотреть сообщение
Необходимо извлечь только первый столбец из файла в формате txt.
0
536 / 523 / 38
Регистрация: 13.03.2011
Сообщений: 728
27.05.2013, 16:04
А кто сказал, что это не первый столбец оценок имелся в виду?
Кстати, вот тут тот же файл разбирается. Но по-другому. Вот я и попутал.
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
27.05.2013, 17:35
Цитата Сообщение от Sledge5 Посмотреть сообщение
А кто сказал, что это не первый столбец оценок имелся в виду?
лапласиан мне во фрактальное отверстие! могет быть
Слух, так может твой ответ скопировать в ту тему? кажется он там ближе.
0
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 21
28.05.2013, 17:40  [ТС]
Посмотрите пожалуйста, что у меня получилось:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function b=funcl(a)
clc
clear
k=fopen('spisok.txt','rt');
%s1=fgetl(k); 
%s1=fgets(k,8);
%s2=fgetl(k);
%s2=fgets(k,8);
%s3=fgetl(k);
%s3=fgets(k,8);
%fgetl(k)
i = 1;
while ~feof(k)
    str = fgetl(k);
    id = findstr(str,' ');
    s{i} = str(1:id(1)-1);
    i = i+1;
end
s(2)
s(3)
s(4)
А сам текстовый файл spisok следующий:

ФИО пр1 пр2 пр3
Гарипова 4 4 5
Колотова 4 5 4
Павлющик 5 5 5

единственное, надо еще записать в файл, но программа выдает ошибку:
Matlab M
1
2
3
4
5
6
7
8
9
clc
clear
q=uigetfile('*.txt')
a=load(q)
b=funcl(a);
d=uiputfile('*.txt')
dlmwrite(d,b)
type(d)
fclose('all');
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
29.05.2013, 08:47
Плохо, что ты саму ошибку не указала
Но похоже, что дело в 4й строке: a = load(q) - она не нужна! Попробуй сразу:
b = funcl(q);
0
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 21
29.05.2013, 14:09  [ТС]
Все равно ошибка...
Вот, изменила:
(код программы для чтения и открытия файла)

Matlab M
1
2
3
4
5
6
7
8
clc
clear
q=uigetfile('*.txt')
b=funcl(q);
d=uiputfile('*.txt')
dlmwrite(d,b)
type(d)
fclose('all');
И сама программа соответственно, чтобы выводился только первый столбец с фамилиями

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function b=funcl(q)
clc
clear
k=fopen('spisok.txt','rt');
%s1=fgetl(k); 
%s1=fgets(k,8);
%s2=fgetl(k);
%s2=fgets(k,8);
%s3=fgetl(k);
%s3=fgets(k,8);
%fgetl(k)
i = 1;
while ~feof(k)
    str = fgetl(k);
    id = findstr(str,' ');
    s{i} = str(1:id(1)-1);
    i = i+1;
end
s(2)
s(3)
s(4)

но в файл до сих пор ничего не записывается даже без 4-ой строчки(((
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
29.05.2013, 15:06
а так?
Matlab M
1
2
3
4
5
6
7
8
9
10
function s = funcl(q)
k=fopen(q,'rt');
fgetl(k)
i = 1;
while ~feof(k)
    str = fgetl(k);
    id = findstr(str,' ');
    s{i} = str(1:id(1)-1);
    i = i+1;
end
0
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 21
29.05.2013, 15:25  [ТС]
Все равно ошибка(((
k=fopen(q,'rt') - Эта строчка вообще не проходит, программа выдает, что в коде ошибка...
и мне надо чтобы выводились лишь фамилии, так что изначальный вариант правильный - единственное не могу понять, почему в файл не записывает(((
почему
Matlab M
1
2
3
4
5
6
7
8
 clc
clear
q=uigetfile('*.txt')
b=funcl(q);
d=uiputfile('*.txt')
dlmwrite(d,b)
type(d)
fclose('all');
не работает(((
0
 Аватар для Зосима
5245 / 3573 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
29.05.2013, 16:35
*чувствую, что дело в текст. файлах (не в той папке лежит, не открывается, другое содержимое)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2013, 16:35
Помогаю со студенческими работами здесь

Оставить первый столбец в txt
Здравствуйте! Помогите советом: имеется txt файл с набором символов в виде 3-х столбцов, необходимо оставить только первый столбец,...

Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив.
Есть текстовый файл, в нем 3 столбца чисел (число строк заранее неизвестно). Напишите пожалуйста код, чтобы первый столбец записывался в...

Извлечь содержимое из .txt файла в textBox
Необходимо извлечь содержимое из .txt файла в textBox. Чтобы как на скриншотах было.

Извлечь определённое слово из .txt файла в textBox
Уважаемые программисты, владеющие языком C#! Я - новичок в программировании и вот мой ступор: Задача следующая: Имеется текстовый файл...

ListView записи добавляются только в первый столбец
Здравствуйте, в общем то проблема вся в теме. Есть лист бокс с 2-мя колонками. Запись добавляется исключительно в 1-ую. Искал в нете,...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru