🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: URGENTE..PASCAL

#641
From: Pascal Bourguignon
Date: Sat, 13 Jan 2007 14:48
57 lines
3610 bytes
"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.
Technical Details
Message-ID: <877ivr3rvj.fsf@thalassa.informatimago.com>
Path: arc1-ca.pugleaf.net!g2news2.google.com!news2.google.com!news.germany.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
References: <1168687449.316024.60110@a75g2000cwd.googlegroups.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!news2.google.com!news.germany.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: Pascal Bourguignon <pjb@informatimago.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: URGENTE..PASCAL
Date: Sat, 13 Jan 2007 15:48:00 +0100
Organization: Informatimago
Lines: 57
Message-ID: <877ivr3rvj.fsf@thalassa.informatimago.com>
References: <1168687449.316024.60110@a75g2000cwd.googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: individual.net ZdLlStejmMekCMchb8rUUwjjlfABfnoN+d7m98qGManY/009/j
Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA
      oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9
      033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac
      l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR
      mV+hO/VvFAAAAABJRU5ErkJggg==
X-Accept-Language:         fr, es, en
X-Disabled: X-No-Archive: no
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.91 (gnu/linux)
Cancel-Lock: sha1:co9OIhf1Bkrg6/tVxRr+EodqTZk=