读取txt文件内容

[复制链接]
1129|5
 楼主| 一路向北lm 发表于 2020-3-18 18:15 | 显示全部楼层 |阅读模式
新建GUI,添加一个列表框ListBox和一个可编辑文本框EditText,并将两个控件属性的String 改为不显示,具体如下:
605155e71f40c84f32.png

 楼主| 一路向北lm 发表于 2020-3-18 18:15 | 显示全部楼层
新建一个txt文件,其中包含了几个学生的几门成绩,具体内容如下:
900615e71f4bba3376.png
 楼主| 一路向北lm 发表于 2020-3-18 18:15 | 显示全部楼层
现在需要实现的是,程序运行时,自动读取上面新建的txt文件,将文件中的学生姓名显示到ListBox控件中,通过点击ListBox中的姓名将对应的成绩显示到EditText控件中。
找到.m文件的初始运行函数处,添加以下代码:
  1. %打开文件
  2. fin = fopen('test.txt','r');
  3. %读取1行
  4. str = fgetl(fin);
  5. %读取第一行的标题分别存储到 str1、str2、str3、str4
  6. [str1 str2 str3 str4] = strread(str,'%s %s %s %s','delimiter',' ');
  7. xingming(1) = str1;
  8. counter = 2; %计数器
  9. while  feof(fin) == 0   %循环读取文件,直到结束
  10.    str = fgetl(fin);     
  11.    [name yuwen shuxue yingyu] = strread(str,'%s %d %d %d','delimiter',' ');
  12.    xingming(counter) = name;
  13.    chenji (counter-1,:) = [yuwen shuxue yingyu];
  14.    counter = counter +1;
  15. end;
  16. %在listbox1控件中显示所有的学生姓名
  17. set(handles.listbox1,'string',xingming);
  18. %使用hangler.chenji声明 chenji为全局变量
  19. handles.chenji = chenji;
  20. %关闭文件
  21. fclose(fin);


 楼主| 一路向北lm 发表于 2020-3-18 18:16 | 显示全部楼层
运行程序,可以看到listbox1控件中显示所有的学生姓名
589605e71f4e60edcd.png
 楼主| 一路向北lm 发表于 2020-3-18 18:16 | 显示全部楼层
右键listbox1控件,查看回调函数,在下面添加以下代码实现点击任意学生姓名时在edit2控件中显示学生的成绩。
  1. %获取点击学生在listbox1控件的位置
  2. value = get(hObject,'value')-1;
  3. %edit2控件中显示学生的成绩
  4. set(handles.edit2,'string',num2str(handles.chenji(value,:)));


 楼主| 一路向北lm 发表于 2020-3-18 18:16 | 显示全部楼层
运行程序,可以看到点击listbox1控件中显示所有的学生姓名,edit2控件中显示该学生的成绩,成功实现了对txt文件的读取和显示。
597985e71f5137b531.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

3837

帖子

81

粉丝
快速回复 在线客服 返回列表 返回顶部