Matlab - Mostrando texto en Edit text (GUI)

 
Vista:

Mostrando texto en Edit text (GUI)

Publicado por Adrián (6 intervenciones) el 13/05/2012 23:09:56
Hola a todos.

Quería mostrar el contenido de distintos archivos .txt en un Edit Text en función de las opciones que elija el usuario. Los .txt son archivos de texto en los cuales hay una frase en cada línea. El problema es que cuando muestro el contenido del segundo archivo .txt las frases del primero se borran del Edit text. Este es mi código:

1
2
3
4
A=importdata('frases1.txt');
B = importdata('frases2.txt');
set(handles.edit1,'String',A);
set(handles.edit1,'String',B);


¿Existe alguna función que permita añadir líneas al String de un Edit Text en lugar de modificarlas/sobreescribirlas?


Para que quede más claro lo que deseo mostrar, pondré un ejemplo:
Si el archivo frases1.txt contiene el siguiente texto:

1
2
Hola me llamo Juan.
¿Cómo está usted?


Y el archivo frases2.txt contiene:
1
2
Buenos días, soy Pepe.
¿Qué tal está?


El edit text finalmente debería mostrar el contenido de ambos archivos a la vez:
1
2
3
4
Hola me llamo Juan.
¿Cómo está usted?
Buenos días, soy Pepe.
¿Qué tal está?


Sin embargo, con mi código sólo muestra las frases correspondientes al último archivo:
1
2
Buenos días, soy Pepe.
¿Qué tal está?


¿Cómo podría solucionar esto?

Muchas gracias por su ayuda.

Un saludo,
Adrián.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Mostrando texto en Edit text (GUI)

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/05/2012 00:54:23
Hola.
Modificar el máximo de edit1 en el inspector. por ejemplo; poner 5


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function varargout = unir_archivos_texto(varargin)
%% http://www.lawebdelprogramador.com/foros/Matlab/1332323-Mostrando_texto_en_Edit_text_(GUI).html
%  Hola a todos.
%  Quería mostrar el contenido de distintos archivos .txt en un Edit Text
% en función de las opciones que elija el usuario. Los .txt son archivos
% de texto en los cuales hay una frase en cada línea. El problema es que
% cuando muestro el contenido del segundo archivo .txt las frases del
% primero se borran del Edit text. Este es mi código:
%  
 
clc
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @unir_archivos_texto_OpeningFcn, ...
                   'gui_OutputFcn',  @unir_archivos_texto_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function unir_archivos_texto_OpeningFcn(hObject, eventdata, handles, varargin)
A=importdata('unir_archivos_texto1.txt');
B=importdata('unir_archivos_texto2.txt');
set(handles.edit1,'String',[A;B]);
handles.output = hObject;
guidata(hObject, handles);
 
function varargout = unir_archivos_texto_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
 
function edit1_Callback(hObject, eventdata, handles)




Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]

http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrando texto en Edit text (GUI)

Publicado por Adrián (6 intervenciones) el 14/05/2012 01:01:48
Muchas gracias por su ayuda.

Yo había optado por solucionarlo copiando el contenido de los dos archivos .txt en un tercer archivo del siguiente modo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
archivo=fopen('nombre2.txt','r');
resultado=fopen('resultado.txt','w+');
while feof(archivo)~=1
    A=fgetl(archivo);
    fprintf(resultado,'%s\n',A);
end
fclose(archivo);
 archivo=fopen('nombre.txt','r');
while feof(archivo)~=1
    A=fgetl(archivo);
    fprintf(resultado,'%s\n',A);
end
fclose(archivo);
fclose(resultado);


Sin embargo, la opción que me propone con la siguiente línea es más simple:
1
set(handles.textopreguntas,'String',[A;B]);


El único problema podría venir cuando no sabes el número de archivos que tienes que fusionar en total.

Gracias de nuevo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Mostrando texto en Edit text (GUI)

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/05/2012 02:30:27
Hola Adrian.
El unico problema lo generas Tu, por la forma como estas preguntando.
Entonces deberias hacer tu pregunta tal como quieres, ese es uno de los grandes problemas de los usuarios, pregunta 'A', sin embargo quieren 'B'.
YO contesto segun las preguntas del usuario.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
function varargout = unir_archivos_texto(varargin)
%% http://www.lawebdelprogramador.com/foros/Matlab/1332323-Mostrando_texto_en_Edit_text_(GUI).html
%  Hola a todos.
%  Quería mostrar el contenido de distintos archivos .txt en un Edit Text
% en función de las opciones que elija el usuario. Los .txt son archivos
% de texto en los cuales hay una frase en cada línea. El problema es que
% cuando muestro el contenido del segundo archivo .txt las frases del
% primero se borran del Edit text. Este es mi código:
%  
 
clc
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @unir_archivos_texto_OpeningFcn, ...
                   'gui_OutputFcn',  @unir_archivos_texto_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function unir_archivos_texto_OpeningFcn(hObject, eventdata, handles, varargin)
A=[];
while 1
[archivo, ruta]=uigetfile('*.txt','Abrir Archivo (clic en Abrir) No Abrir(clic en Cancelar)');
if archivo==0
    break;
else
 B=importdata([ruta archivo]);
 A=[A;B];
end
end
set(handles.edit1,'String',A);
 
handles.output = hObject;
guidata(hObject, handles);
 
function varargout = unir_archivos_texto_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
 
function edit1_Callback(hObject, eventdata, handles)



Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]

http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar