<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" 
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:wfw="http://wellformedweb.org/CommentAPI/"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:meneame="http://meneame.net/faq-es.php"
 >
<channel>
	<title>Algoritmos: comentarios [2366699]</title>
	<link>http://www.meneame.net</link>
	<image><title>www.meneame.net</title><link>http://www.meneame.net</link><url>http://cdn.mnmstatic.net/m/Algoritmos/img/mnm/eli-rss.png</url></image>
	<description>Sitio colaborativo de publicación y comunicación entre blogs</description>
	<pubDate>Mon, 09 Mar 2015 13:10:21 +0000</pubDate>
	<generator>http://blog.meneame.net/</generator>
	<language>es</language>
	<item>
		<meneame:comment_id>16452349</meneame:comment_id>
		<meneame:link_id>2366699</meneame:link_id>
		<meneame:order>8</meneame:order>
		<meneame:user>--1--</meneame:user>
		<meneame:votes>1</meneame:votes>
		<meneame:karma>25</meneame:karma>
		<meneame:url>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero</meneame:url>
		<title>#8 Acceso rápido a una fila de un fichero</title>
		<link>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c08#c-8</link>
		<pubDate>Mon, 09 Mar 2015 13:10:21 +0000</pubDate>
		<dc:creator>--1--</dc:creator>
		<guid>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c08#c-8</guid>
		<description><![CDATA[<p><a class="tooltip c:2366699-1" href="https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c01#c-1" rel="nofollow">#1</a> El seek/lseek es lo más rápido, te posicionas directamente donde quieras. Si las filas son de longitud variable, busca el final y coge la siguiente.</p><p>&#187;&nbsp;autor: <strong>--1--</strong></p>]]></description>
	</item>

	<item>
		<meneame:comment_id>16428165</meneame:comment_id>
		<meneame:link_id>2366699</meneame:link_id>
		<meneame:order>7</meneame:order>
		<meneame:user>--171278--</meneame:user>
		<meneame:votes>0</meneame:votes>
		<meneame:karma>10</meneame:karma>
		<meneame:url>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero</meneame:url>
		<title>#7 Acceso rápido a una fila de un fichero</title>
		<link>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c07#c-7</link>
		<pubDate>Thu, 05 Mar 2015 10:04:46 +0000</pubDate>
		<dc:creator>--171278--</dc:creator>
		<guid>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c07#c-7</guid>
		<description><![CDATA[<p><a class="tooltip c:2366699-5" href="https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c05#c-5" rel="nofollow">#5</a> En efecto ^-^ el problema es que no todas las filas son del mismo tamaño y no siguen un patrón</p><p>&#187;&nbsp;autor: <strong>--171278--</strong></p>]]></description>
	</item>

	<item>
		<meneame:comment_id>16426977</meneame:comment_id>
		<meneame:link_id>2366699</meneame:link_id>
		<meneame:order>6</meneame:order>
		<meneame:user>--298049--</meneame:user>
		<meneame:votes>1</meneame:votes>
		<meneame:karma>22</meneame:karma>
		<meneame:url>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero</meneame:url>
		<title>#6 Acceso rápido a una fila de un fichero</title>
		<link>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c06#c-6</link>
		<pubDate>Thu, 05 Mar 2015 01:55:11 +0000</pubDate>
		<dc:creator>--298049--</dc:creator>
		<guid>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c06#c-6</guid>
		<description><![CDATA[<p>No parece complejo el phyton este<br />
<br />
chisme para leer una linea aleatoria desde un fichero F<br />
<br />
import sys,random<br />
<br />
with open(sys.argv[1],&#34;r&#34;) as f <a href="/m/Algoritmos/search?w=comments&#38;q=%23abrimos&#38;o=date">#abrimos</a> er fishero<br />
    f.seek(0,2) # vamos al final<br />
    bytes = f.tell() # Averiguamos el tamaño<br />
    f.seek(int(bytes*random.random())) <a href="/m/Algoritmos/search?w=comments&#38;q=%23Movemos&#38;o=date">#Movemos</a> el puntero a un sitio aleatorio<br />
<br />
    <br />
    while True: <a href="/m/Algoritmos/search?w=comments&#38;q=%23buscamos&#38;o=date">#buscamos</a> hacia atras hasta encontrar el principio del fichero<br />
 f.seek(-2,1)<br />
 ch = f.read(1)<br />
 if ch=='n': break <a href="/m/Algoritmos/search?w=comments&#38;q=%23o&#38;o=date">#o</a> encontramos un CRLF<br />
 if f.tell()==1: break<br />
<br />
    <br />
    print f.readline() # Imprimimos la linea</p><p>&#187;&nbsp;autor: <strong>--298049--</strong></p>]]></description>
	</item>

	<item>
		<meneame:comment_id>16426916</meneame:comment_id>
		<meneame:link_id>2366699</meneame:link_id>
		<meneame:order>5</meneame:order>
		<meneame:user>--298049--</meneame:user>
		<meneame:votes>2</meneame:votes>
		<meneame:karma>33</meneame:karma>
		<meneame:url>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero</meneame:url>
		<title>#5 Acceso rápido a una fila de un fichero</title>
		<link>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c05#c-5</link>
		<pubDate>Thu, 05 Mar 2015 01:06:23 +0000</pubDate>
		<dc:creator>--298049--</dc:creator>
		<guid>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c05#c-5</guid>
		<description><![CDATA[<p><a class="tooltip c:2366699-4" href="https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c04#c-4" rel="nofollow">#4</a> No tengo ni idea de Phyton pero todos los lenguajes permiten el acceso aleatorio a un fichero comenzando a leer desde una posición N que puede ser desde el principio y contando hacia adelante o desde el final y contando hacia atrás. <br />
<br />
Si todas las filas son del mismo tamaño no hay problema pues multiplicas la posicion (0 based) por el tamaño de la fila y le dices al OS que el file_pointer del fichero desde donde comenzar a leer es el resultado de la multiplicación, pero como es un fichero de texto temo que todas las filas tendrán un tamaño diferente y se indicará el final de fila con un par de caracteres CRLF <i>as usual</i>. En este caso es muy jodido, al menos desde mi punto de vista, pues aunque comencemos a leer desde un punto X del fichero desconocemos cuantas lineas hay antes de ese punto.<br />
<br />
Lo mejor en el caso de filas de tamaño aleatorio es mantener un fichero paralelo con las posiciones y el tamaño de las filas (esto último no imprescindible). Cada vez que añadimos una fila añadimos a su vez la posición del fichero donde se insertó y la longitud. Como el tamaño de los indices sí que es fijo aquí podemos usar la multiplicación para recuperar el puntero N y saber donde tenemos que comenzar a leer en el fichero de texto. Sería como una base de datos rudimentaria.</p><p>&#187;&nbsp;autor: <strong>--298049--</strong></p>]]></description>
	</item>

	<item>
		<meneame:comment_id>16426883</meneame:comment_id>
		<meneame:link_id>2366699</meneame:link_id>
		<meneame:order>4</meneame:order>
		<meneame:user>--115178--</meneame:user>
		<meneame:votes>1</meneame:votes>
		<meneame:karma>21</meneame:karma>
		<meneame:url>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero</meneame:url>
		<title>#4 Acceso rápido a una fila de un fichero</title>
		<link>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c04#c-4</link>
		<pubDate>Thu, 05 Mar 2015 00:55:32 +0000</pubDate>
		<dc:creator>--115178--</dc:creator>
		<guid>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c04#c-4</guid>
		<description><![CDATA[<p><a class="tooltip c:2366699-3" href="https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c03#c-3" rel="nofollow">#3</a> un matemático no te dice como leer desde el final, eso lo hace un informático <img data-src="https://cdn.mnmstatic.net/v_149/img/menemojis/36/tongue.png" alt=":-P" title=":-P" width="18" height="18" src="https://cdn.mnmstatic.net/v_149/img/g.gif" class="emoji lazy" /><br />
<br />
En serio, no sé programar en python, sólo he dado una solución del problema suponiendo que era posible empezar por el final.</p><p>&#187;&nbsp;autor: <strong>--115178--</strong></p>]]></description>
	</item>

	<item>
		<meneame:comment_id>16426873</meneame:comment_id>
		<meneame:link_id>2366699</meneame:link_id>
		<meneame:order>3</meneame:order>
		<meneame:user>--171278--</meneame:user>
		<meneame:votes>0</meneame:votes>
		<meneame:karma>10</meneame:karma>
		<meneame:url>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero</meneame:url>
		<title>#3 Acceso rápido a una fila de un fichero</title>
		<link>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c03#c-3</link>
		<pubDate>Thu, 05 Mar 2015 00:52:48 +0000</pubDate>
		<dc:creator>--171278--</dc:creator>
		<guid>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c03#c-3</guid>
		<description><![CDATA[<p><a class="tooltip c:2366699-2" href="https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c02#c-2" rel="nofollow">#2</a> la idea es buena, pero como lees desde el final?</p><p>&#187;&nbsp;autor: <strong>--171278--</strong></p>]]></description>
	</item>

	<item>
		<meneame:comment_id>16426847</meneame:comment_id>
		<meneame:link_id>2366699</meneame:link_id>
		<meneame:order>2</meneame:order>
		<meneame:user>--115178--</meneame:user>
		<meneame:votes>0</meneame:votes>
		<meneame:karma>11</meneame:karma>
		<meneame:url>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero</meneame:url>
		<title>#2 Acceso rápido a una fila de un fichero</title>
		<link>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c02#c-2</link>
		<pubDate>Thu, 05 Mar 2015 00:42:18 +0000</pubDate>
		<dc:creator>--115178--</dc:creator>
		<guid>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c02#c-2</guid>
		<description><![CDATA[<p><a class="tooltip l:2366699" href="https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero" rel="nofollow">#0</a> digamos que hay n filas. <br />
<br />
<br />
elige el numero al azar, llamemosle x, y si sale menor que n/2 lees hasta esa fila; si sale mayor que n/2 lees hasta la fila n-x comenzando por el final.<br />
<br />
Reduces el tiempo de lectura hasta como máximo la mitad.<br />
<br />
Y tal vez puedas iterar.</p><p>&#187;&nbsp;autor: <strong>--115178--</strong></p>]]></description>
	</item>

	<item>
		<meneame:comment_id>16423436</meneame:comment_id>
		<meneame:link_id>2366699</meneame:link_id>
		<meneame:order>1</meneame:order>
		<meneame:user>--171278--</meneame:user>
		<meneame:votes>0</meneame:votes>
		<meneame:karma>10</meneame:karma>
		<meneame:url>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero</meneame:url>
		<title>#1 Acceso rápido a una fila de un fichero</title>
		<link>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c01#c-1</link>
		<pubDate>Wed, 04 Mar 2015 14:39:41 +0000</pubDate>
		<dc:creator>--171278--</dc:creator>
		<guid>https://www.meneame.net/m/Algoritmos/acceso-rapido-fila-fichero/c01#c-1</guid>
		<description><![CDATA[<p>He solucionado el problema transformando el fichero a una base de datos sqlite3...pero dejo esto abierto porque el tema puede ser interesante</p><p>&#187;&nbsp;autor: <strong>--171278--</strong></p>]]></description>
	</item>

</channel>
</rss>
