🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #653

Re: URGENTE..PASCAL

#653
From: lqf
Date: Sat, 20 Jan 2007 10:38
62 lines
3864 bytes
Pascal Bourguignon ha escrito:
> "lqf" <abcdefghijoseantonio@hotmail.com> writes:
> > Hola:
> >
> > Lo primero de todo me gustaria decir que me acabo de empenzar a mirar
> > este lenguaje(PASCAL) y estoy un poco perdido asi que si hago alguna
> > pregunta facil o erronea espero q lo entendais.
> >
> >
> > Despues de todo este rollo aqui va 1 de mis preguntas por ahora:
> > - Yo tengo en un fichero datos entonces abro ese fichero le recorreo
> > hasta que encuentro el dato q me interesa entonces voy a una funcion en
> >
> > la cual lo que quiero es cambiar unos datos de la linea que he
> > encontrado. Aqui esta mi problema cuando abro el fichero(¿Se puede
> > tener un fichero para leer y escribir ?)
>
> En estandard basico, no.  Pero en las implementaciones, hay
> generalmente extensiones para poder abrir un archivo en
> lectura/escritura.
>
> > al poner rewrite me
> > sobreescribe el fichero y solo me pone la ultima linea, por lo tanto me
> > borra todas las lineas y no solo updatea la que yo quiero.
>
> En effecto.
>
>
> Pero, si abres el archivo en lectura/escritura, en general el dato que
> quieres modificar va a cambiar de tamaño, asi que tienes que
> implementar una gestion del archivo más complicada, con indices, etc,
> o bien tienes que hacer lo que debes hacer con lo basico: abrir dos
> archivos, el antiguo en lectura, un nuevo en escritura, y copia del
> antiguo al nuevo hasta que encuentres el dato, y en lugar de escribir
> el dato, escribes el valor nuevo, y finalmente, terminas de copiar el
> antiguo archivo sobre el nuevo.
>
>
> Hay que acordarse que cuando el estandard Pascal fue escrito,
> basicamente se usaba solo bandas, asi que solo archivos sequenciales.
>
>
>
> Con FreePascal, puedes gdbm, lo que te permite acceder a un dato por
> una clave y cambiar lo por otro dato.  El codigo gdbm modifica el
> archivo automaticamente para adaptarse al tamaño del nuevo dato.
>
> Pero los archivos indexados en general son archivos binarios.  Si tu
> archivo debe ser un archivo texto, con líneas de longitudes
> diferentes, sin indice solo se puede usar el accesso sequencial.
>
> --
> __Pascal Bourguignon__                     http://www.informatimago.com/
>
> NOTE: The most fundamental particles in this product are held
> together by a "gluing" force about which little is currently known
> and whose adhesive power can therefore not be permanently
> guaranteed.

Mi pregunta es como se abre un fichero para escritura y lectura(me
podriais decir en codigo que necesitaria).
Technical Details
Message-ID: <1169289502.650269.268960@q2g2000cwa.googlegroups.com>
Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!q2g2000cwa.googlegroups.com!not-for-mail
References: <1168687449.316024.60110@a75g2000cwd.googlegroups.com> <877ivr3rvj.fsf@thalassa.informatimago.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,a15f00c2969f0180
X-Google-Attributes: gidf86c8,public
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!q2g2000cwa.googlegroups.com!not-for-mail
From: "lqf" <abcdefghijoseantonio@hotmail.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: URGENTE..PASCAL
Date: 20 Jan 2007 02:38:22 -0800
Organization: http://groups.google.com
Lines: 63
Message-ID: <1169289502.650269.268960@q2g2000cwa.googlegroups.com>
References: <1168687449.316024.60110@a75g2000cwd.googlegroups.com>
   <877ivr3rvj.fsf@thalassa.informatimago.com>
NNTP-Posting-Host: 81.172.8.152
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1169289509 21641 127.0.0.1 (20 Jan 2007 10:38:29 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Sat, 20 Jan 2007 10:38:29 +0000 (UTC)
In-Reply-To: <877ivr3rvj.fsf@thalassa.informatimago.com>
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705),gzip(gfe),gzip(gfe)
Complaints-To: groups-abuse@google.com
Injection-Info: q2g2000cwa.googlegroups.com; posting-host=81.172.8.152;
   posting-account=lEbdYg0AAABLWWpYNAEvbw9IBAC9LAsh