• Viernes 29 de Marzo de 2024, 11:39

Autor Tema:  Error : Constant And Case Types Do Not Match  (Leído 5893 veces)

VeRaCrUzAnItO-10-

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Error : Constant And Case Types Do Not Match
« en: Martes 2 de Marzo de 2004, 03:36 »
0
Hola, aqui pidiendo su ayuda despues de en verdad namas no saber que hacer, este es un programa de archivos el cual en la funcion de "Modificar" me manda el error "Constant and CASE types do not match"

aqui les envio el pedazo de código haber si me pueden prestar su ayuda.
De antemano mil gracias.

[/CODE]
        2:Begin
              clrscr;
              writeln ('Nombre del Archivo');
              readln (nomArch);
              writeln ('Numero de Departamento');
              readln (ndepa);
              writeln ('Desea Modificar **a-Duracion** **b-Renta** **c-Incremento');
              readln (opcMov);
              case opcMov of
              'a':begin
                    clrscr;
                    writeln ('Nueva Duracion');
                    readln (durCont);
                    end;
              'b':Begin
                    clrscr;
                    writeln ('Nueva Renta');
                    readln (renta);
                    end;
              'c':Begin
                    clrscr;
                    writeln ('Nuevo Incremento');
                    readln (incAnual);
                    end;
                    modificar(nomArch,ndepa,opcMov,durCont,renta,incAnual);
                    readkey;
              end;

Eso aparece en .pas, en el código principal y el unidad el tpu  la tengo declarada asi:
[CODE]function modificar(nomArch:str50;ndepa:integer;opcMov:char;durCont:integer;renta:real;incAnual:real):boolean;
       var
         f:file of depto;
         d:depto;
         aux:real;
         begin
             modificar:=false;
             assign(f,nomArch);
             reset(f);
             while not (eof(f)) do
             begin
                 read(f,d);
                 if ndepa=d.ndep then
                 begin
                     modificar:=true;
                     writeln ('Datos de Departamento Modificado');
                     case opcMov of
                     'a':begin
                           seek(f,filepos(f)-1);
                           d.dur:=durCont;
                           write(f,d);
                           end;
                     'b':begin
                           seek(f,filepos(f)-1);
                           d.rent:=renta;
                           write(f,d);
                           end;
                     'c':begin
                           seek(f,filepos(f)-1);
                           d.inc:=incAnual;
                           write(f,d);
                           end;
                     end;
                 end;
             close(f);
         end;
         end;

Y pa que no digan que no hay abundancia, tambien por ahi les anezo el .pas y .tpu
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

DriverOp

  • Miembro MUY activo
  • ***
  • Mensajes: 201
    • Ver Perfil
Re: Error : Constant And Case Types Do Not Match
« Respuesta #1 en: Domingo 7 de Marzo de 2004, 19:45 »
0
Hola, el error es, tal como sospechaba, que tienes mal cerrado un bloque Begin...End.
Donde pones:
Código: Text
  1.  
  2. c':Begin
  3. clrscr;
  4. writeln ('Nuevo Incremento');
  5. readln (incAnual);
  6. end;
  7. modificar(nomArch,ndepa,opcMov,durCont,renta,incAnual);
  8. readkey;
  9. end;
  10.  
  11.  
Debería ser:
Código: Text
  1.  
  2. c':Begin
  3. clrscr;
  4. writeln ('Nuevo Incremento');
  5. readln (incAnual);
  6. end;
  7. [B]end;[/B] { este End es el que falta }
  8. modificar(nomArch,ndepa,opcMov,durCont,renta,incAnual);
  9. readkey;
  10. end;
  11.  
  12.  
En el programa principal.