Matlab - Reemplazar cadena de caracteres en un archivo externo

 
Vista:

Reemplazar cadena de caracteres en un archivo externo

Publicado por Arnold Torres (26 intervenciones) el 09/04/2011 02:02:40
Hola a todos...
Tengo un problema que la verdad no se si tenga solución. Quiero reemplazar una cadena de caracteres en un archivo de extensión .txt (u otro) utilizando matlab. Les explico mejor, tengo un archivo .txt que contiene la siguiente cadena: 'El perro esta en la casa', deseo reemplazar la palabra 'perro' por 'loro' de tal forma que el archivo .txt quede asi: 'El loro esta en la casa'.. Para mi es facil leer la cadena e identificar la palabra 'perro' pero no se como reemplazarla ¿Alguien tiene idea de como hacerlo? Les agradezco mucho
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 Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Reemplazar cadena de caracteres en un archivo externo

Publicado por Dave (1094 intervenciones) el 13/04/2011 03:38:30
Hola Arnold;

Una opción simple y menos complicada podría ser que uses la función "strfind", para determinar la ubicación de la palabra que deseas reemplazar.

Espero que sea de alguna ayuda.

Saludos
Dave
[email protected]
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

Reemplazar cadena de caracteres en un archivo externo

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 09/04/2011 05:51:46
Hola Arnold,
hice un programa a lo q estas pidiendo, aunque falta optimizar.
Tanto el archivo texto, como el programa por el momento deben estar en mismo directorio para que se puedan ejercutar correctamente. Si hay dudas vuelves a escribir.

%=============================================
clear
texto=importdata('arnold.txt');
cad1=texto{1};
fprintf('%s\n',cad1);
pal_cambiar=input('Ingrese la palabra a cambiar: ','s');
pal_nuevo=input('Ingrese el nuevo palabra: ','s');
n=length(pal_nuevo);
m=length(pal_cambiar);
fid=fopen('arnold.txt','w');
fprintf(fid,'%s',cad1(1:3));
fprintf(fid,'%s',pal_nuevo);
fprintf(fid,'%s\n',cad1(3+m+1:end));
fclose(fid);
edit arnold.txt
%======================================

EJECUCION
>> arnold
el perro esta en casa
Ingrese la palabra a cambiar: perro
Ingrese el nuevo palabra: loro

>> arnold
el loro esta en casa
Ingrese la palabra a cambiar: loro
Ingrese el nuevo palabra: gato

>> arnold
el gato esta en casa
Ingrese la palabra a cambiar: gato
Ingrese el nuevo palabra: pato

>> arnold
el pato esta en casa
Ingrese la palabra a cambiar: pato
Ingrese el nuevo palabra: ganso


Saludos:
JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
PROFESOR DE MATLAB Y METODOS NUMERICOS
PROGRAMADOR EN MATLAB
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 JEREMAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Reemplazar cadena de caracteres en un archivo externo

Publicado por JOSE JEREMAS CABALLERO (5917 intervenciones) el 09/04/2011 08:12:36
Hola Arnold,
hice un programa a lo q estas pidiendo,
Tanto el archivo texto, como el programa por el momento deben estar en mismo directorio para que se puedan ejercutar correctamente.
En este programa puedes cambiar una palabra o un conjunto de palabras cualquiera de una fila de palabras. Si hay dudas vuelves a escribir.

%========================================================
clear,
texto=importdata('arnold.txt');
cad1=texto{1};
fprintf('%s\n',cad1);
pal_cambiar=input('Ingrese la palabra a cambiar: ','s');
pal_nuevo=input('Ingrese el nuevo palabra: ','s');
m=length(pal_cambiar);
n=length(pal_nuevo);
for i=1:length(cad1)
if cad1(i:i+m-1)==pal_cambiar
break;
end
end
fid=fopen('arnold.txt','w');
fprintf(fid,'%s',cad1(1:i-1));
fprintf(fid,'%s',pal_nuevo);
fprintf(fid,'%s\n',cad1(i+m:end));
fclose(fid);
edit arnold.txt
%======================================

%EJECUCION

>> arnold1
El perro esta en la casa
Ingrese la palabra a cambiar: casa
Ingrese el nuevo palabra: sala

>> arnold1
El perro esta en la sala
Ingrese la palabra a cambiar: perro
Ingrese el nuevo palabra: loro

>> arnold1
El loro esta en la sala
Ingrese la palabra a cambiar: sala
Ingrese el nuevo palabra: cocina

Saludos:
JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
PROFESOR DE MATLAB Y METODOS NUMERICOS
PROGRAMADOR EN MATLAB
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

Reemplazar cadena de caracteres en un archivo externo

Publicado por Arnold Torres (26 intervenciones) el 17/04/2011 01:34:32
Bueno... fue de gran ayuda sus aportes... garcias... ya le di solución al problema
Saludos.. si alguien esta interesado q solo haga la petición y con mucho gusto le colaboro
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

Reemplazar cadena de caracteres en un archivo externo

Publicado por Leonor Ramírez (2 intervenciones) el 17/04/2018 17:18:25
Hola, tengo un problema similar en el que me piden que haga un sript que le pida al usuario una cadena de caracteres, y que imprima la misma cadena pero sustituyendo las vocales por asteriscos.

Gracias por tu ayuda
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

Reemplazar cadena de caracteres en un archivo externo

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 09/05/2018 01:56:31
1
2
3
4
5
6
7
8
clear
cadena=input('Ingrese cadena: ','s');
for i=1:length(cadena)
    if cadena(i)=='a' ||   cadena(i)=='e' ||   cadena(i)=='i' ||   cadena(i)=='o' ||  cadena(i)=='u'
        cadena(i)='*';
    end
end
cadena

1
2
3
4
5
6
7
>> cadena_asterisco
Ingrese cadena: jose caballero cantu
 
cadena =
 
    'j*s* c*b*ll*r* c*nt*

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero

'
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

Reemplazar cadena de caracteres en un archivo externo

Publicado por Leonor Ramírez (2 intervenciones) el 10/05/2018 17:44:02
Muchas gracias por tu ayuda!
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