Matlab - Sustituir caracteres

 
Vista:

Sustituir caracteres

Publicado por Pedro Estévez (4 intervenciones) el 02/01/2015 13:36:17
Buenos días,

Estoy programando un cajero automático en matlab y tenía una duda.

Después de ejecutar el programa, éste te crea un fichero con todos los datos del usuario, así como su saldo. Si bien gracias a la ayuda de uno de los usuarios conseguí poder usar el caracter del saldo como un número para poder operar con él, necesito que me actualice el valor. Un ejemplo.

NOMBRE DEL USUARIO:
Pedro
NÚMERO DE CUENTA:
23051063535087673554
PASSWORD
qa5r8
CÓDIGO DEL BANCO
ES24
SALDO
563.22€

La próxima vez que ejecute el programa, si ingreso 10 €, el saldo debería cambiar a 573.22 en el fichero, pero no lo consigo.

Con strrep podría sustituir el valor, pero no me serviría porque podrían coincidir valores con otros usuarios, aún así, cuando lo he intentado usar, no me lo cambiaba.

También lo he intentado situando el cursor donde lo necesito y escribiendo un conjunto vacío o un espacio o algo, pero nunca me escribe nada o, si lo hace, es al final del fichero, cosa que no entiendo porque he situado el cursor donde yo quería.

Gracias, un saludo.
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

Sustituir caracteres

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 02/01/2015 13:52:49
Si se puede hacer. Pero como no muestras tu código, simplemente lo mencionas, no se puede ver en que parte de tu código esta fallando.

Saludos.
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
programador en matlab
Servicios de programación matlab
[email protected]
Estimado Usuario de Matlab, el correo es para servicios de cursos, asesoría y programación. Toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

Sustituir caracteres

Publicado por Pedro Estévez (4 intervenciones) el 02/01/2015 14:23:10
Sí, perdona, me lo he visto tantas veces que me lo sé de memoria y lo obvio.

Esto es sólo la última parte, básicamente, antes creo un fichero con los datos del usuario si no estaba inscrito, o busco en él su nombre para comprobar que estaba, a parte de otra cosas.

En esta, compruebo la posición del final del nombre, para a partir de ahí, leer el saldo de ese usuario, ya que siempre habrá el mismo número de caracteres. Cojo el saldo y opero con él. Finalmente, debo sustituir el valor anterior por el nuevo en el fichero (que es el de antes). La última parte es mi problema

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
fprintf('\n');
disp('¿Qué operación desea realizar?');
fprintf('\n');
disp('1-Ingresar dinero.');
disp('2-Sacar dinero.');
disp('3-Salir del sistema.');
fprintf('\n');
 
fid=fopen('sistema.txt','r');
    contenido=fscanf(fid,'%c',inf);
    fclose(fid);
    i=1;
    j=1;
    while (i<=length(nombre))
        while (j<=length(contenido))
            if (nombre(i)==contenido(j))
                i=i+1;
                j=j+1;
            else
                j=j+1;
                i=1;
            end
 
            if (j==length(contenido)+1 ||i==length(nombre)+1)
                posicion=j;
                valor=i;
                j=inf;
                i=inf;
            end
        end
    end
 
i=posicion+83;
p=1;
while (strcmp(contenido(i),'€')==0)
    saldo(p)=contenido(i);
    p=p+1;
    i=i+1;
end
saldo=char(saldo);
saldo=str2double(saldo);
 
n=input('-->');
fprintf('\n');
if (n==1)
    cantidad=input('Introduzca la cantidad: ');
    fprintf('\n');
    if (cantidad>1000 || cantidad<0)
        error('Las cantidades no deben superar los 1000€');
    end
    saldo=saldo+cantidad;
    fprintf('Su saldo es de: %.2f€\n',saldo);
    if (saldo<0)
        fprintf('Felices juegos del hambre y que la suerte esté siempre de vuestra parte.\n');
    end
elseif (n==2)
    cantidad=input('Introduzca la cantidad: ');
    fprintf('\n');
    if (cantidad>1000 || cantidad<0)
        error('Las cantidades no deben superar los 1000€');
    end
    saldo=saldo-cantidad;
    fprintf('Su saldo es de: %.2f€\n',saldo);
    if (saldo<0)
        fprintf('Felices juegos del hambre y que la suerte esté siempre de vuestra parte.\n');
    end
else
    return;
end
 
 
fid=fopen('sistema.txt','a+');
fseek(fid,posicion+76,'bof');
i=posicion+76;
while (strcmp(fread(fid,i),'€')==0);
    fwrite(fid,'');
    i=i+1;
end
fclose(fid);
 
return;

Pero como decía antes, no consigo borrar el saldo anterior para poner el nuevo.

Un saludo.
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

cajero automatico mat lab

Publicado por jeisson parra (1 intervención) el 26/03/2015 23:25:05
buenas tardes amigo

estoy en un gran problema necesito hacer un cajero electrónico utilizando mat lab.. pero no se como?
si me pudes ayudar le estaría muy agradecido.
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