如何按格式读取文本框Edit Text中的内容
本帖最后由 ChaChing 于 2010-8-18 23:40 编辑直接用get读取如下:=uiputfile({'*.txt','文本文档(*.txt)';'*.*','所有文件(*.*)'},'另存为');
str=;
strw=get(handles.edit1,'String');
fid=fopen(str,'wt');
fprintf(fid,strw);
fclose(fid);当文本框中的内容为多行时,MATLAB将其作为一个矩阵存入strw。这样的话,文本框中的内容是按列存入文本文件的,不能按原样写入文本文件。请问怎样才能将文本框中的内容按格式写入文本文件,也就是如何将文本框读取到的字符串进行变换,变换到它原来的格式。 文本框中的内容是按列存入文本文件的
看不懂。我的测试结果: 看来我还是理解错了,我以为strw的值已经混排了,原来是在写入文本文件的时候混排的.如下为将1楼代码粘贴到pushbutton1的回调函数里后的运行结果,就是我所说的是按列存入的,并且将两行左对齐了。
[ 本帖最后由 geoer 于 2008-2-3 12:15 编辑 ] 本帖最后由 ChaChing 于 2010-8-18 23:34 编辑
现在的问题是如何能保持编辑框内原来的格式不变存入文本文件?
我的测试结果怎么不一样呢?是个2*9的字符数组啊。
[ 本帖最后由 geoer 于 2008-2-3 12:36 编辑 ] 原帖由 geoer 于 2008-2-3 12:21 发表 http://www.chinavib.com/forum/images/common/back.gif
现在的问题是如何能保持编辑框内原来的格式不变存入文本文件?
一行一行写入吧,fprintf(fid,strw{i}); 试试 对这下应该比较容易了,知道了strw的行列,检测行数和列数后,一行行写就行。你那个测试有毛病吧,strw应该是如下:
[ 本帖最后由 geoer 于 2008-2-3 13:21 编辑 ] 原帖由 geoer 于 2008-2-3 13:05 发表 http://www.chinavib.com/forum/images/common/back.gif
对这下应该比较容易了,知道了strw的行列,检测行数和列数后,一列一列写就行。你那个测试有毛病吧,str应该是如下:
32561
我输入的时候没有按回车,是自动换行的,不知道是否有差别 那应该就是这个问题,按回车就是另一行了,我的按了。没按的就按一行读入。 原帖由 geoer 于 2008-2-3 13:23 发表 http://www.chinavib.com/forum/images/common/back.gif
那应该就是这个问题,按回车就是另一行了,我的按了。没按的就按一行读入。
反正得到的 strw 是一个cell数组,写入文件时一行一行写就ok了 本帖最后由 ChaChing 于 2010-8-18 23:36 编辑
这么写就对了,还是差点,因为在strw时空格就被忽略了。改成左对齐方式,读出来跟原来也有差别,还得改改。=size(strw)
fid=fopen(str,'wt');
for i=1:m
for j=1:n
fprintf(fid,strw(i,j));
end
fprintf(fid,'\n');
end
fclose(fid);
不是单元数组吧,是字符数组,用{}的话就要报错的吧。 原帖由 geoer 于 2008-2-3 13:29 发表 http://www.chinavib.com/forum/images/common/back.gif
不是单元数组吧,是字符数组,用{}的话就要报错的吧。
你看我2楼的图片吧,难道不同版本的matlab会有此区别?没关系啦,搞定就行 那是完整的解决问题就行,谢谢。
页:
[1]