声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2814|回复: 11

[编程技巧] 如何按格式读取文本框Edit Text中的内容

[复制链接]
发表于 2008-2-3 10:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 ChaChing 于 2010-8-18 23:40 编辑

直接用get读取如下:
  1. [FileName PathName]=uiputfile({'*.txt','文本文档(*.txt)';'*.*','所有文件(*.*)'},'另存为');
  2. str=[PathName FileName];
  3. strw=get(handles.edit1,'String');
  4. fid=fopen(str,'wt');
  5. fprintf(fid,strw);
  6. fclose(fid);
复制代码
当文本框中的内容为多行时,MATLAB将其作为一个矩阵存入strw。这样的话,文本框中的内容是按列存入文本文件的,不能按原样写入文本文件。请问怎样才能将文本框中的内容按格式写入文本文件,也就是如何将文本框读取到的字符串进行变换,变换到它原来的格式。
回复
分享到:

使用道具 举报

发表于 2008-2-3 11:25 | 显示全部楼层
文本框中的内容是按列存入文本文件的

看不懂。我的测试结果:
temp1.bmp
temp2.bmp

评分

1

查看全部评分

 楼主| 发表于 2008-2-3 12:08 | 显示全部楼层
看来我还是理解错了,我以为strw的值已经混排了,原来是在写入文本文件的时候混排的.如下为将1楼代码粘贴到pushbutton1的回调函数里后的运行结果,就是我所说的是按列存入的,并且将两行左对齐了。 geoer.jpg

[ 本帖最后由 geoer 于 2008-2-3 12:15 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2008-2-3 12:33 | 显示全部楼层
本帖最后由 ChaChing 于 2010-8-18 23:34 编辑

现在的问题是如何能保持编辑框内原来的格式不变存入文本文件?
我的测试结果怎么不一样呢?是个2*9的字符数组啊。
测试结果1.jpg
测试结果2.jpg
测试结果3.jpg

[ 本帖最后由 geoer 于 2008-2-3 12:36 编辑 ]
发表于 2008-2-3 12:53 | 显示全部楼层
 楼主| 发表于 2008-2-3 13:05 | 显示全部楼层
对这下应该比较容易了,知道了strw的行列,检测行数和列数后,一行行写就行。你那个测试有毛病吧,strw应该是如下:
eight.jpg


[ 本帖最后由 geoer 于 2008-2-3 13:21 编辑 ]
发表于 2008-2-3 13:18 | 显示全部楼层
原帖由 geoer 于 2008-2-3 13:05 发表
对这下应该比较容易了,知道了strw的行列,检测行数和列数后,一列一列写就行。你那个测试有毛病吧,str应该是如下:
32561

我输入的时候没有按回车,是自动换行的,不知道是否有差别
 楼主| 发表于 2008-2-3 13:23 | 显示全部楼层
那应该就是这个问题,按回车就是另一行了,我的按了。没按的就按一行读入。
发表于 2008-2-3 13:24 | 显示全部楼层
原帖由 geoer 于 2008-2-3 13:23 发表
那应该就是这个问题,按回车就是另一行了,我的按了。没按的就按一行读入。


反正得到的 strw 是一个cell数组,写入文件时一行一行写就ok了
 楼主| 发表于 2008-2-3 13:28 | 显示全部楼层
本帖最后由 ChaChing 于 2010-8-18 23:36 编辑

这么写就对了,还是差点,因为在strw时空格就被忽略了。改成左对齐方式,读出来跟原来也有差别,还得改改。
  1. [m,n]=size(strw)
  2. fid=fopen(str,'wt');
  3. for i=1:m
  4. for j=1:n
  5. fprintf(fid,strw(i,j));
  6. end
  7. fprintf(fid,'\n');
  8. end
  9. fclose(fid);
复制代码
不是单元数组吧,是字符数组,用{}的话就要报错的吧。
发表于 2008-2-3 13:39 | 显示全部楼层
原帖由 geoer 于 2008-2-3 13:29 发表
不是单元数组吧,是字符数组,用{}的话就要报错的吧。


你看我2楼的图片吧,难道不同版本的matlab会有此区别?没关系啦,搞定就行

评分

1

查看全部评分

 楼主| 发表于 2008-2-3 13:50 | 显示全部楼层
那是完整的解决问题就行,谢谢。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-23 18:14 , Processed in 0.065107 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表