🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Programa en C para leer un fichero. Necesito ideas

#6325
From: Piojo
Date: Wed, 16 Jul 2003 13:24
26 lines
2242 bytes
> Y la pregunta es, �como se dimensiona el espacio en memoria para
> contener todo esto? El n�mero de l�neas y de valores por l�nea es
> desconocido a priori y arbitrario.
>
Tienes dos opciones:
- Listas enlazadas (la m�s sencilla de implementar, y la que minimizar� la
memoria desperdiciada).
- Arrays que, una vez llenos, redimensiones (con realloc). Esta opci�n es
m�s engorrosa. Util�zala si necesitas b�squedas r�pidas o poder reordenar
los datos. Si el acceso va a ser siempre secuencial, qu�date con la opci�n
anterior.

Un par de consejillos m�s:

Lee las l�neas enteras (o casi), usando fgets. as� podr�s saber cu�ndo
llegas al final del fichero, cu�ndo la l�nea es extremadamente larga, y
cu�ndo has llegado al final de la misma. 
Nada de (x)scanf. Por razones de seguridad y porque es m�s dif�cil localizar
las nuevas l�neas.

Y parsea los n�meros con strtol (si las entradas son siempre n�meros
enteros) o strtod (si las entradas pueden ser n�meros con parte no entera).
Con esto, adem�s de que el recorrido de la l�nea es trivial, consigues
detectar errores en el formato del fichero.

Saludos.
Technical Details
Message-ID: <bf3jlo$9ee$1@news.ya.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!in.100proofnews.com!in.100proofnews.com!nsnmrro1-lo.nuria.telefonica-data.net!nsnmpen1-lo.nuria.telefonica-data.net!news.ya.com!yacom!not-for-mail
References: <86isqbiqb5.fsf@escomposlinux.org>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,3124d921db375d13
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2003-07-16 06:25:01 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!in.100proofnews.com!in.100proofnews.com!nsnmrro1-lo.nuria.telefonica-data.net!nsnmpen1-lo.nuria.telefonica-data.net!news.ya.com!yacom!not-for-mail
From: Piojo <piojolinux@ya.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Programa en C para leer un fichero. Necesito ideas
Date: Wed, 16 Jul 2003 15:24:03 +0200
Organization: ya.com internet factory
Lines: 26
Message-ID: <bf3jlo$9ee$1@news.ya.com>
References: <86isqbiqb5.fsf@escomposlinux.org>
NNTP-Posting-Host: 80-25-211-52.adsl.ya.com
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8Bit
X-Trace: news.ya.com 1058361848 9678 80.25.211.52 (16 Jul 2003 13:24:08 GMT)
X-Complaints-To: newsmaster@ya.com
NNTP-Posting-Date: Wed, 16 Jul 2003 13:24:08 +0000 (UTC)
User-Agent: KNode/0.7.2