Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-11-2010
WPascal WPascal is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 26
Poder: 0
WPascal Va por buen camino
Ayuda con archivos con Tipo

Saludos a todos, estoy aprendiendo el manejo de archivos en Pascal y quize hacer un programita que leyera los datos de un juego de ajedrez y los almacenara en un record para poder guardar la informacion en un archivo con tipo, el problema es que el compilador me da un error que no sé que quiere decir, entonces necesito que me colaboren, qué error estoy cometiendo.
Aqui está el código:

Código Delphi [-]
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Type
    TDPartida = Record                               {Creo El tipo Record TDPartida
                                                      con datos blancas,negras,anyo y resultado }
                Blancas,Negras,Resultado:String;
                Anyo:Integer;
    End;
Var
    Partidas: file of TDPartida;   {Este es el Alias, donde tira el error}
    Juego:TDpartida;                {En la variable juego guardo la informacion}
                                     {que pasaré al archivo}
    NEntradas,I:Integer;
    {NEntradas es la cantidad de veces que se vana ingresar registros}
begin
    Assign(Partidas,'Resultados de las partidas.chess');
    Write('cuantos datos de partidas va a ingresar?: '); Readln(NEntradas);
    for I := 1 to NEntradas do  {Aqui pido los datos segun el valor de NEntradas}
        begin
            Writeln('Blancas:'); Read(Juego.Blancas);
            Writeln('Negras:'); Read(Juego.Negras);
            Writeln('Anyo:'); Read(Juego.Anyo);
            Writeln('Resultado:'); Read(Juego.Resultado);
            {Pregunto si el archivo existe}
            if not FileExists('Resultados de las partidas.chess') then
                Rewrite(Partidas);
            Reset(Partidas);  {pongo el archivo en modo escritura}
            Write(Partidas,Juego); {escribo en el archivo la informacion del record}
        end;
    Close(partidas);

end.

El compilador me tira el error:

[DCC Error] Project1.dpr(14): E2155 Type 'TDPartida' needs finalization - not allowed in file type

De antemano gracias por sus respuestas y su tiempo.
Responder Con Cita
  #2  
Antiguo 04-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola WPascal.

El problema te lo genera la línea: Blancas,Negras,Resultado:String;

El tipo string no puede aparecer en un archivo tipado, ya que su longitud es indeterminada.
Tenés que definir el tamaño, como por ejemplo:
Código Delphi [-]
    Blancas, Negras,Resultado: string[40]; // o la longitud que necesites

Saludos.
Responder Con Cita
  #3  
Antiguo 04-11-2010
WPascal WPascal is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 26
Poder: 0
WPascal Va por buen camino
Hola, Ecfisa, nuevamente gracias por tu tiempo y colaborarme con este problema, hice el cambio que me solicitaste y de inmendiato funcionó, lo raro es que en el libro con el que me estoy guiando no decía nada de ese límite jaja.
Nuevamente gracias.
Hasta pronto.
Responder Con Cita
  #4  
Antiguo 04-11-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Con qué libro te está guiando? Porque, si no mal recuedo, en versiones antiguas de Pascal (no sé si de Delphi), el tipo de datos string era equivalente a string[256], o sea, un tipo de datos de longitud fija.

// Saludos
Responder Con Cita
  #5  
Antiguo 04-11-2010
WPascal WPascal is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 26
Poder: 0
WPascal Va por buen camino
El libro se llama Manual de FreePascal 1.0 para Win32
Responder Con Cita
  #6  
Antiguo 04-11-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

Examinando por encima el manual que refieres, veo que, en efecto, en la sección donde hablan de archivos con tipo en ocasiones ponen el tipo string y en otras el tipo ShortString, al momento de delcarar el registro. Así que, les falta aclarar.

Por otra parte, en la sección donde habla de los tipos de datos fundamentales, menciona que string puede referirse a un ShortString (cadena de 255 caracteres) o a un AnsiString (número ilimitado de caracteres), dependiendo del modo en que se encuentre el compilador.

De hecho, esto es igual en Delphi. Dependiendo de la opción del compilador {$H} (activada por defecto). Si dejas tu código como lo tenías, pero pones {$H-} antes de la delcaración de TDPartida, verás que el compilador ya no protesta.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Hacer una ayuda tipo Windows (chm) AngelV Varios 3 14-05-2007 08:45:41
ayuda con numeros de tipo flotante vero_17jm SQL 3 07-12-2006 14:06:51
Ver lista de archivos tipo ftp JMGR Internet 15 15-11-2005 20:13:42
Ayuda tipo Web torito Varios 2 30-08-2005 17:10:25
Ayuda Con Instalacion De Archivos De Ayuda Legolas Varios 1 01-12-2003 14:48:03


La franja horaria es GMT +2. Ahora son las 08:57:58.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi