Article View: es.comp.os.linux.programacion
Article #641Re: URGENTE..PASCAL
From: Pascal Bourguignon
Date: Sat, 13 Jan 2007 14:48
Date: Sat, 13 Jan 2007 14:48
57 lines
3610 bytes
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-mailReferences:
<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=