用户界面-用文件中的数据填充文本框时出现MATLAB GUI错误



我正在编写一个MATLAB GUI程序,其中文本框中的数据存储在.dat文件中。当重新加载程序时,文本框从文件中提取数据(这样用户就不必每次都重新输入信息)。这部分代码将数据保存到.dat文件中:

fid = fopen('textboxdata.dat', 'wt');
fprintf(fid, '%sn', host);
fprintf(fid, '%sn', username);
fprintf(fid, '%sn', password);
fclose(fid);

[主机、用户名和密码为字符串]

这部分代码获取数据并放入文本框中:

s = dir('textboxdata.dat');
if s.bytes ~= 0
    fid = fopen('textboxdata.dat', 'rt');
    A = textscan(fid, '%s', 3);
    A = A{1};
    set(handles.hostbox, 'String', A(1))
    set(handles.usernamebox, 'String', A(2))
    set(handles.passwordbox, 'String', A(3))
    fclose(fid); 
end

现在这很好,但当用户试图使用这些数据登录到FTP服务器时,我会收到以下错误:

使用===>fprintf时出错未为"单元格"输入定义函数。

===>realgui>登录按钮回调198时出错fprintf(fid,'%s',主机);

===>gui_mainfcn中的错误,96feval(varargin{:});

===>realgui在42时出错guid_mainfcn(guid_State,varargin{:});

===>@(hObject,eventdata)realgui('logonbutton_Callback',hObject,事件数据,gui数据(hObject))中的错误

但奇怪的是,如果你重新键入所有数据,你就可以登录到FTP服务器了!我在这里完全迷路了。有人知道发生了什么吗?

A = A{1}生成包含字符串的单元格数组。

因此,当您调用set(handles.hostbox, 'String', A(1))时,A(1)的值实际上是一个单元格,而不是您希望的字符串

由于A(1)是包含字符串的单元格,因此希望使用A{1}引用单元格中包含的字符串。

花括号表示单元格的内容,括号表示单元格及其内容。

相关内容

  • 没有找到相关文章

最新更新