<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.ecured.cu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fredy</id>
	<title>EcuRed - Contribuciones del colaborador [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.ecured.cu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fredy"/>
	<link rel="alternate" type="text/html" href="https://www.ecured.cu/Especial:Contribuciones/Fredy"/>
	<updated>2026-06-12T07:05:46Z</updated>
	<subtitle>Contribuciones del colaborador</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Mario_Casas&amp;diff=608351</id>
		<title>Mario Casas</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Mario_Casas&amp;diff=608351"/>
		<updated>2011-05-23T13:46:09Z</updated>

		<summary type="html">&lt;p&gt;Fredy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
{{Ficha Persona&lt;br /&gt;
|nombre= Mario Casas&lt;br /&gt;
|nombre completo = Mario Casas Sierra&lt;br /&gt;
|otros nombres = &lt;br /&gt;
|imagen = Mario-casas.jpg&lt;br /&gt;
|tamaño = &lt;br /&gt;
|descripción = Actor español&lt;br /&gt;
|fecha de nacimiento = [[12 de junio]] de [[1986]] &lt;br /&gt;
|lugar de nacimiento = La Coruña&lt;br /&gt;
|fecha de fallecimiento = &lt;br /&gt;
|lugar de fallecimiento = &lt;br /&gt;
|causa muerte = &lt;br /&gt;
|residencia = &lt;br /&gt;
|nacionalidad = [[Español]]&lt;br /&gt;
|ciudadania = Española&lt;br /&gt;
|educación = &lt;br /&gt;
|alma máter = &lt;br /&gt;
|ocupación = [[Actor]]&lt;br /&gt;
|conocido = &lt;br /&gt;
|titulo = &lt;br /&gt;
|termino = &lt;br /&gt;
|predecesor = &lt;br /&gt;
|sucesor = &lt;br /&gt;
|partido político = &lt;br /&gt;
|cónyuge = &lt;br /&gt;
|hijos = &lt;br /&gt;
|padres = &lt;br /&gt;
|familiares = &lt;br /&gt;
|obras = &lt;br /&gt;
|premios = &lt;br /&gt;
|titulos =&lt;br /&gt;
|récords =&lt;br /&gt;
|plusmarcas = &lt;br /&gt;
|web = &lt;br /&gt;
|notas = &lt;br /&gt;
}}&lt;br /&gt;
'''Mario Casas'''&lt;br /&gt;
Mario nació el [[12 de junio]] de [[1986]] en La Coruña, [[España]] y mide 1.80, actor protagonista de la [[Serie El Barco|serie]] del momento “[[Serie El Barco|El Barco]]” es además el actor de moda ya que cuenta en cartel con varios títulos como “3MSC” o “Carne de Neón“. &lt;br /&gt;
&lt;br /&gt;
==Trayectoria==&lt;br /&gt;
Comenzó su carrera en trabajos publicitarios para [[Televisión|televisión]] con tan sólo 10 años. Más tarde, con 17 se trasladó a [[Madrid]] y aunque en un principio pensó en ser futbolista o policia, pronto se dió cuenta que lo suyo era la interpretación.&lt;br /&gt;
Fue en 2004 cuando comenzó a aparecer en todo tipo de ficciones televisivas, siendo la primera “Obsesión” una serie de TVE de 2005 que apenas tuvo éxito y en la que Casas tuvo un papel muy secundario.&lt;br /&gt;
Tras este despegue pasó a formar parte de “Motivos Personales“, serie de Telecinco en la que coincidió con otro de los guapos oficiales del actual [[Cine|cine]] español, [[MiguelÁngel Silvestre]], aunque su paso por ésta fue capitular.  La fama le llegó un año más tarde cuando fue protagonista de “SMS“, serie de La Sexta donde trabajó junto a [[Amaia Salamanca]], en la que que hacía de Javi, un adolescente que iba a un colegio de clase alta donde se siente excluido por sus compañeros.&lt;br /&gt;
Tras el fracaso de audiencia de “SMS“, Casas recaló en [[“Los Hombres de Paco”]] donde se dió a conocer para todo el mundo en este país como actor, el joven policía que se enamoraba de Sara a la que daba vida [[Michelle Jenner]]. La serie le sirvió para acabar siendo uno de sus principales reclamos tras la marcha de [[Hugo Silva]] y para que comenzar a labrarse una carrera en el cine que parece estar yendo a las mil maravillas.&lt;br /&gt;
En el cine, debutó con el [[Camino de los Ingleses]], película dirigida por [[Antonio Banderas]]. Sus apariciones en series de televisión y su papel en la [[Película|película]] [[Mentiras y gordas]] lo lanzaron a lo más alto en las listas de popularidad, convirtiéndolo en un ídolo de masas, contando con miles de fans.&lt;br /&gt;
Posteriormente llegaron papeles más extensos en el cine en películas que resultaron un éxito en taquilla, como [[Fuga de cerebros]] y [[Tres metros sobre el cielo]].&lt;br /&gt;
Su éxito en el cine no le impidió continuar con su carrera en el campo de las series, compaginando ambas actividades. En [[2011]] estrenó en [[Antena 3]] [[El barco]].&lt;br /&gt;
&lt;br /&gt;
Como actor considera que lo más importante es la formación y al comenzar tan joven reconoce que su principal fuente ha sido la televisión, aunque reconoce que no es suficiente y le gusta seguir formándose y aprendiendo con los nuevos papeles que se le presentan, prefiriendo los que supongan un reto para él.&lt;br /&gt;
&lt;br /&gt;
==Premios== &lt;br /&gt;
===Premio Talento Revelación del Cine Español===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Interpretación revelación&lt;br /&gt;
| Mentiras y gordas. Fuga de cerebros&lt;br /&gt;
| Nominado&lt;br /&gt;
|}&lt;br /&gt;
===Fotogramas de Plata===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado&lt;br /&gt;
|-&lt;br /&gt;
| 2010&lt;br /&gt;
| Mejor actor de cine&lt;br /&gt;
| Tres metros sobre el cielo&lt;br /&gt;
| Nominado&lt;br /&gt;
|-&lt;br /&gt;
| 2010&lt;br /&gt;
| Intérprete más buscado en                         www.fotogramas.es&lt;br /&gt;
|&lt;br /&gt;
| Ganador&lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Intérprete más buscado en                         www.fotogramas.es&lt;br /&gt;
|&lt;br /&gt;
| Nominado&lt;br /&gt;
|}&lt;br /&gt;
                                 &lt;br /&gt;
Must! Awards(es un galardón otorgado anualmente por la revista Must! mediante notación de sus lectores, que distinguen la labor en distintos ámbitos de la televisión en España.)&lt;br /&gt;
                                                                                      &lt;br /&gt;
===Festival Internacional de Cine lésbico y Gay de Madrid===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Premio LesGai de Interpretación                         (ex aequo Ana María Polvorosa)&lt;br /&gt;
| Mentiras y gordas. &lt;br /&gt;
| Ganador&lt;br /&gt;
|}&lt;br /&gt;
                                                          &lt;br /&gt;
===Festival de Cine de Zaragoza===&lt;br /&gt;
                                                                                      &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Premio Talento Joven (ex aequo                         Alexandra Jiménez)&lt;br /&gt;
| Fuga de Cerebros&lt;br /&gt;
| Ganador&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Premios micrófono de Oro===&lt;br /&gt;
                                                                                      &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2011&lt;br /&gt;
| Televisión&lt;br /&gt;
| Los Hombres de Paco. El Barco&lt;br /&gt;
| Ganador&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Premios Shangay===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Mejor interpretación de cine&lt;br /&gt;
| Mentiras y gordas&lt;br /&gt;
| Nominado&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Premios EP3===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Actor revelación español&lt;br /&gt;
| Mentiras y gordas&lt;br /&gt;
| Nominado&lt;br /&gt;
|}&lt;br /&gt;
*Premios EñE del cine(es un galardón otorgado de forma anual por la red  de blogueros de      internet, con la finalidad de premiar a  los  mejores profesionales en cada una de las distintas  especialidades del  sector)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año&lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado&lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Mejor intepretación masculine de reparto&lt;br /&gt;
| Mentiras y gordas&lt;br /&gt;
| Ganador&lt;br /&gt;
|}.&lt;br /&gt;
&lt;br /&gt;
==Fuentes==&lt;br /&gt;
[http://prensacorazon.com/mario-casas-biografia/ Biografía]&lt;br /&gt;
[http://www.nosolocine.es/persona.php?p=84295 Mario Casas]&lt;br /&gt;
[[Categoría: Actor]]&lt;/div&gt;</summary>
		<author><name>Fredy</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Mario_Casas&amp;diff=608308</id>
		<title>Mario Casas</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Mario_Casas&amp;diff=608308"/>
		<updated>2011-05-23T13:36:42Z</updated>

		<summary type="html">&lt;p&gt;Fredy: Página creada con '&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt; {{Ficha Persona |nombre= Mario Casas |nombre completo = Mario Casas Sierra |otros nombres =  |imagen = Mario-casas.jpg |tamaño =  |descripción = Actor es...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
{{Ficha Persona&lt;br /&gt;
|nombre= Mario Casas&lt;br /&gt;
|nombre completo = Mario Casas Sierra&lt;br /&gt;
|otros nombres = &lt;br /&gt;
|imagen = Mario-casas.jpg&lt;br /&gt;
|tamaño = &lt;br /&gt;
|descripción = Actor español&lt;br /&gt;
|fecha de nacimiento = 12 de junio de 1986 &lt;br /&gt;
|lugar de nacimiento = La Coruña&lt;br /&gt;
|fecha de fallecimiento = &lt;br /&gt;
|lugar de fallecimiento = &lt;br /&gt;
|causa muerte = &lt;br /&gt;
|residencia = &lt;br /&gt;
|nacionalidad = Español&lt;br /&gt;
|ciudadania = Española&lt;br /&gt;
|educación = &lt;br /&gt;
|alma máter = &lt;br /&gt;
|ocupación = [[Actor]]&lt;br /&gt;
|conocido = &lt;br /&gt;
|titulo = &lt;br /&gt;
|termino = &lt;br /&gt;
|predecesor = &lt;br /&gt;
|sucesor = &lt;br /&gt;
|partido político = &lt;br /&gt;
|cónyuge = &lt;br /&gt;
|hijos = &lt;br /&gt;
|padres = &lt;br /&gt;
|familiares = &lt;br /&gt;
|obras = &lt;br /&gt;
|premios = &lt;br /&gt;
|titulos =&lt;br /&gt;
|récords =&lt;br /&gt;
|plusmarcas = &lt;br /&gt;
|web = &lt;br /&gt;
|notas = &lt;br /&gt;
}}&lt;br /&gt;
'''Mario Casas'''&lt;br /&gt;
Mario nació el 12 de junio de 1986 en La Coruña, España y mide 1.80, actor protagonista de la serie del momento “El Barco” es además el actor de moda ya que cuenta en cartel con varios títulos como “3MSC” o “Carne de Neón“. &lt;br /&gt;
&lt;br /&gt;
==Trayectoria==&lt;br /&gt;
Comenzó su carrera en trabajos publicitarios para televisión con tan sólo 10 años. Más tarde, con 17 se trasladó a Madrid y aunque en un principio pensó en ser futbolista o policia, pronto se dió cuenta que lo suyo era la interpretación.&lt;br /&gt;
Fue en 2004 cuando comenzó a aparecer en todo tipo de ficciones televisivas, siendo la primera “Obsesión” una serie de TVE de 2005 que apenas tuvo éxito y en la que Casas tuvo un papel muy secundario.&lt;br /&gt;
Tras este despegue pasó a formar parte de “Motivos Personales“, serie de Telecinco en la que coincidió con otro de los guapos oficiales del actual cine español, [[MiguelÁngel Silvestre]], aunque su paso por ésta fue capitular. Digamos que la fama le llegó un año más tarde cuando fue protagonista de “SMS“, serie de La Sexta donde trabajó junto a [[Amaia Salamanca]], en la que que hacía de Javi, un adolescente que iba a un colegio de clase alta donde se siente excluido por sus compañeros..&lt;br /&gt;
Tras el fracaso de audiencia de “SMS“, Casas recaló en [[“Los Hombres de Paco”]] donde se dió a conocer para todo el mundo en este país como Aitor, el joven policía que se enamoraba de Sara a la que daba vida [[Michelle Jenner]]. La serie le sirvió para acabar siendo uno de sus principales reclamos tras la marcha de [[Hugo Silva]] y para que comenzara a labrarse una carrera en el cine que parece estar yendo a las mil maravillas.&lt;br /&gt;
En el cine, debutó con el Camino de los Ingleses, película dirigida por [[Antonio Banderas]]. Sus apariciones en series de televisión y su papel en la película [[Mentiras y gordas]] lo lanzaron a lo más alto en las listas de popularidad, convirtiéndolo en un ídolo de masas, contando con miles de fans.&lt;br /&gt;
Posteriormente llegaron papeles más extensos en el cine en películas que resultaron un éxito en taquilla, como [[Fuga de cerebros]] y [[Tres metros sobre el cielo]].&lt;br /&gt;
Su éxito en el cine no le impidió continuar con su carrera en el campo de las series, compaginando ambas actividades. En 2011 estrenó en [[Antena 3]] [[El barco]].&lt;br /&gt;
&lt;br /&gt;
Como actor considera que lo más importante es la formación y al comenzar tan joven reconoce que su principal fuente ha sido la televisión, aunque reconoce que no es suficiente y le gusta seguir formándose y aprendiendo con los nuevos papeles que se le presentan, prefiriendo los que supongan un reto para él.&lt;br /&gt;
&lt;br /&gt;
==Premios== &lt;br /&gt;
===Premio Talento Revelación del Cine Español===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Interpretación revelación&lt;br /&gt;
| Mentiras y gordas. Fuga de cerebros&lt;br /&gt;
| Nominado&lt;br /&gt;
|}&lt;br /&gt;
===Fotogramas de Plata===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado&lt;br /&gt;
|-&lt;br /&gt;
| 2010&lt;br /&gt;
| Mejor actor de cine&lt;br /&gt;
| Tres metros sobre el cielo&lt;br /&gt;
| Nominado&lt;br /&gt;
|-&lt;br /&gt;
| 2010&lt;br /&gt;
| Intérprete más buscado en                         www.fotogramas.es&lt;br /&gt;
|&lt;br /&gt;
| Ganador&lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Intérprete más buscado en                         www.fotogramas.es&lt;br /&gt;
|&lt;br /&gt;
| Nominado&lt;br /&gt;
|}&lt;br /&gt;
                                 &lt;br /&gt;
Must! Awards(es un galardón otorgado anualmente por la revista Must! mediante notación de sus lectores, que distinguen la labor en distintos ámbitos de la televisión en España.)&lt;br /&gt;
                                                                                      &lt;br /&gt;
===Festival Internacional de Cine lésbico y Gay de Madrid===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Premio LesGai de Interpretación                         (ex aequo Ana María Polvorosa)&lt;br /&gt;
| Mentiras y gordas. &lt;br /&gt;
| Ganador&lt;br /&gt;
|}&lt;br /&gt;
                                                          &lt;br /&gt;
===Festival de Cine de Zaragoza===&lt;br /&gt;
                                                                                      &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Premio Talento Joven (ex aequo                         Alexandra Jiménez)&lt;br /&gt;
| Fuga de Cerebros&lt;br /&gt;
| Ganador&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Premios micrófono de Oro===&lt;br /&gt;
                                                                                      &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2011&lt;br /&gt;
| Televisión&lt;br /&gt;
| Los Hombres de Paco. El Barco&lt;br /&gt;
| Ganador&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Premios Shangay===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Mejor interpretación de cine&lt;br /&gt;
| Mentiras y gordas&lt;br /&gt;
| Nominado&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Premios EP3===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año &lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado &lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Actor revelación español&lt;br /&gt;
| Mentiras y gordas&lt;br /&gt;
| Nominado&lt;br /&gt;
|}&lt;br /&gt;
*Premios EñE del cine(es un galardón otorgado de forma anual por la red  de blogueros de      internet, con la finalidad de premiar a  los  mejores profesionales en cada una de las distintas  especialidades del  sector)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Año&lt;br /&gt;
! Categoría &lt;br /&gt;
! Película&lt;br /&gt;
! Resultado&lt;br /&gt;
|-&lt;br /&gt;
| 2009&lt;br /&gt;
| Mejor intepretación masculine de reparto&lt;br /&gt;
| Mentiras y gordas&lt;br /&gt;
| Ganador&lt;br /&gt;
|}.&lt;br /&gt;
&lt;br /&gt;
==Fuentes==&lt;br /&gt;
[http://prensacorazon.com/mario-casas-biografia/ Biografía]&lt;br /&gt;
[http://www.nosolocine.es/persona.php?p=84295 Mario Casas]&lt;br /&gt;
[[Categoría: Actor]]&lt;/div&gt;</summary>
		<author><name>Fredy</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Lz77&amp;diff=591287</id>
		<title>Lz77</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Lz77&amp;diff=591287"/>
		<updated>2011-05-16T13:20:52Z</updated>

		<summary type="html">&lt;p&gt;Fredy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''LZ77'''Denominado como lz1. Los compresores basados en algoritmos sin pérdida se utilizan cuando la información a comprimir es crítica y no se puede perder información, por ejemplo en los archivos ejecutables, tablas de bases de datos, o cualquier tipo de información que no admita pérdida. El modelo lz77 es muy usado porque es fácil de implementar y es bastante eficiente. &lt;br /&gt;
&lt;br /&gt;
== Historia  ==&lt;br /&gt;
&lt;br /&gt;
En [[1977]] [[Abraham Lempel]] y [[Jacob Ziv]] presentaron su modelo de compresión basado en diccionario, para compresión de texto compresión de texto se refiere a compresión sin pérdida para cualquier tipo de datos. Hasta la fecha todos los algoritmos de compresión desarrollados eran básicamente compresores estáticos. El nuevo modelo fue llamado lz77 (lz son la iniciales de sus creadores y 77 el año en que se creó). &lt;br /&gt;
&lt;br /&gt;
== Comprimiendo  ==&lt;br /&gt;
&lt;br /&gt;
Imaginemos que estamos comprimiendo el texto “ab ab”, leemos hasta “ab ” y lo escribimos sin comprimir, luego leemos “ab” y escribimos lo siguiente: con el “desplazamiento” de 0 se halló una coincidencia de dos bytes repetidos. Quedaría así “ab &amp;amp;lt;3,2,eof)&amp;amp;gt; ” (eof fin de fichero). &lt;br /&gt;
&lt;br /&gt;
== Descomprimiendo  ==&lt;br /&gt;
&lt;br /&gt;
Para descomprimir “ab &amp;amp;lt;3,2,eof)&amp;amp;gt; ” Lo primero que tenemos es “ab ” después de la pos 0 que es a se toman dos caracteres que serían ab en entonces la cadena quedaría “ab ab”. &lt;br /&gt;
&lt;br /&gt;
== ¿Cómo funciona?  ==&lt;br /&gt;
&lt;br /&gt;
Pero, ¿cómo sabe el descompresor si lo que lee es un par desplazamiento/tamaño o un byte sin comprimir?. La respuesta es simple, usamos un prefijo, un bit que actúa como una bandera, de forma similar a un interruptor con dos estados que nos permite saber qué tipo de datos vienen a continuación. Si el prefijo es 0, entonces lo que viene es un [[Byte]] sin comprimir. Si, por el contrario, el prefijo es 1, entonces lo que sigue a continuación es un par desplazamiento/tamaño. A estos prefijos también se les llama “banderas”. El par desplazamiento/tamaño es llamado una palabra clave. Una palabra clave es un grupo de bits (o bytes) que contienen alguna clase de información usada por el compresor y el descompresor. La otra salida posible de lz77 es un literal, la cual es simplemente un byte sin comprimir, de manera que la salida de lz77 puede ser de tres formas: &lt;br /&gt;
&lt;br /&gt;
#Literales: son simplemente bytes sin comprimir. &lt;br /&gt;
#Palabras clave: en nuestro caso son pares tamaño/desplazamiento. &lt;br /&gt;
#Banderas: simplemente nos indican si los datos que hay a continuación son literales o palabras clave.&lt;br /&gt;
&lt;br /&gt;
Ahora, como ejemplo, veamos de nuevo nuestra cadena y una salida real de un algoritmo lz77: &lt;br /&gt;
&lt;br /&gt;
 Obtener ‘a’.  Sin coincidencia.  Bandera 0. Literal ’a’.&lt;br /&gt;
 Obtener ‘b’.  Sin coincidencia.  Bandera 0. Literal ’b’.&lt;br /&gt;
 Obtener ‘ ’.  Sin coincidencia.  Bandera 0. Literal ’ ’.&lt;br /&gt;
 Obtener ‘a’.  Coincidencia.      Bandera 1. Palabra clave: desplazamiento = 0, tamaño = 2.&lt;br /&gt;
&lt;br /&gt;
Como puede verse la bandera sólo tiene dos estados posibles, de manera que sólo necesitamos un bit para representarla. Ahora no deberíamos representar las banderas como bytes completos, deberíamos trabajar con bits. La salida de esta compresión es llamada un flujo de bits, porque es un flujo de símbolos de tamaño variable, y la unidad mínima es el bit. &lt;br /&gt;
&lt;br /&gt;
== Seudo Código  ==&lt;br /&gt;
&lt;br /&gt;
Recordemos cómo trabaja lz77, uno se encuentra en una posición dada y trata de hallar hacia atrás (porque se está seguro de que el descompresor ya ha decodificado esos bytes cuando uno se encuentra en dicha posición) una coincidencia, bytes que son iguales a los bytes en la posición actual; si se encuentran se escribe una palabra clave, de otra forma se escribe una literal para poder seguir comprimiendo. &lt;br /&gt;
&lt;br /&gt;
=== Secuencia básica: Compresor  ===&lt;br /&gt;
&lt;br /&gt;
*Guardar el tamaño del archivo a comprimir. &lt;br /&gt;
*Repetir hasta que no hayan más bytes para comprimir. &lt;br /&gt;
*Escanear el buffer de entrada comenzando en posición_actual - tamaño_de_ventana_corrediza hasta el byte actual que estamos comparando. (Notar que el descompresor no puede copiar bytes de una posición desde donde sus bytes no han sido previamente definidos). &lt;br /&gt;
*¿Hemos encontrado un byte igual al actual? &lt;br /&gt;
*Caso Si: &lt;br /&gt;
**Comparamos el siguiente byte desde la posición actual con el byte en la posición siguiente de donde encontramos un byte igual al primero. &lt;br /&gt;
**Continuar comparando hasta que encontremos un byte que no es igual. &lt;br /&gt;
**Se ha encontrado un byte que no es igual. ¿Es el número de bytes mayor que tres? &lt;br /&gt;
*Caso Si: &lt;br /&gt;
**Escribir el desplazamiento del PRIMER byte hallado y el número de bytes repetidos (tamaño). &lt;br /&gt;
**Movemos el puntero a la posición con el número de bytes repetidos (porque no los hemos “salvado”) y seguimos buscando. &lt;br /&gt;
**También se escribe una bandera 1. &lt;br /&gt;
*Caso No: &lt;br /&gt;
**Continúa la búsqueda. &lt;br /&gt;
*Caso No: &lt;br /&gt;
**Si no se encuentra ninguna coincidencia, simplemente se escribe un byte sin comprimir (también se escribe un literal si no hay datos en la ventana corrediza). &lt;br /&gt;
**Debe recordar poner la bandera a 0.&lt;br /&gt;
&lt;br /&gt;
=== Secuencia básica: Descompresor  ===&lt;br /&gt;
&lt;br /&gt;
*Se lee el tamaño del archivo sin comprimir. &lt;br /&gt;
*Se repite hasta que se ha descomprimido todo el archivo. &lt;br /&gt;
*Se lee un bit (la bandera). &lt;br /&gt;
*Si es 0: &lt;br /&gt;
**Se leen 8 bits, se escriben al buffer de salida (recordar que son un byte descomprimido) y se incrementa el puntero a la salida. &lt;br /&gt;
*Si es 1: &lt;br /&gt;
**Se lee el desplazamiento completo (13 bits), luego el tamaño, copiar “tamaño” bytes de “desplazamiento” a la posición actual, y añadir al puntero a la salida “tamaño”.&lt;br /&gt;
&lt;br /&gt;
== Código en C#  ==&lt;br /&gt;
&lt;br /&gt;
=== Comprimir  ===&lt;br /&gt;
&lt;br /&gt;
A este método se le pasa por parámetro la longitud de la ventana, el tamaño del buffer de búsqueda y la cadena a comprimir y el retorna otra cadena con los valores después de la compresión. BB -&amp;amp;gt; Tamaño del buffer de búsqueda. BA -&amp;amp;gt; Tamaño del buffer de anticipación. &lt;br /&gt;
&lt;br /&gt;
 public string Metodo_LZ77_Comprimir(int Long_Ventana, int BB, string cadena)&lt;br /&gt;
       {&lt;br /&gt;
           string lista = &amp;quot;&amp;quot;;&lt;br /&gt;
           int pos_cursor = 0;&lt;br /&gt;
           int BA=Long_Ventana-BB;&lt;br /&gt;
           while (pos_cursor &amp;amp;lt; cadena.Length)&lt;br /&gt;
           {&lt;br /&gt;
               int longitud = 0;&lt;br /&gt;
               int offset = 0;&lt;br /&gt;
               string carat = cadena[pos_cursor].ToString();&lt;br /&gt;
               int w = pos_cursor - 1;&lt;br /&gt;
               int temp = BB;&lt;br /&gt;
               int temp2;&lt;br /&gt;
               int otra = 0;&lt;br /&gt;
               while (w &amp;amp;gt;= 0 &amp;amp;amp;&amp;amp;amp; temp-- &amp;amp;gt; 0)&lt;br /&gt;
               {&lt;br /&gt;
                   temp2 = BA;&lt;br /&gt;
                   if (cadena[w] == cadena[pos_cursor])&lt;br /&gt;
                   {&lt;br /&gt;
                       int offset_temp = otra + 1;&lt;br /&gt;
                       int pos = pos_cursor + 1;  &lt;br /&gt;
                       int b = w + 1;&lt;br /&gt;
                       int lon = 1;&lt;br /&gt;
                       while (pos &amp;amp;lt; cadena.Length &amp;amp;amp;&amp;amp;amp; cadena[b] == cadena[pos] &amp;amp;amp;&amp;amp;amp; temp2-- &amp;amp;gt; 2) &lt;br /&gt;
                        { b++; lon++; pos++; }&lt;br /&gt;
                       if (lon &amp;amp;gt;= longitud)&lt;br /&gt;
                       {&lt;br /&gt;
                           longitud = lon;&lt;br /&gt;
                           offset = offset_temp;&lt;br /&gt;
                           if (pos == cadena.Length)&lt;br /&gt;
                               carat = &amp;quot;eof&amp;quot;;&lt;br /&gt;
                           else&lt;br /&gt;
                               carat = cadena[pos].ToString();&lt;br /&gt;
                       }&lt;br /&gt;
                   } w--; otra++;&lt;br /&gt;
               }&lt;br /&gt;
               lista += string.Format(&amp;quot;&amp;amp;lt;{0},{1},{2}&amp;amp;gt;&amp;quot;, offset, longitud, carat);&lt;br /&gt;
               pos_cursor += longitud + 1;&lt;br /&gt;
           }&lt;br /&gt;
           cadenas_comprimidas.Add(lista);&lt;br /&gt;
           return lista;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
=== Descomprimir  ===&lt;br /&gt;
&lt;br /&gt;
Este se le pasa por parámetro la cadena a descomprimir y este retorna la cadena deseada. &lt;br /&gt;
&lt;br /&gt;
 public string Metodo_LZ77_Descompromir_arreglado(string ca)&lt;br /&gt;
       {&lt;br /&gt;
           string cinta = &amp;quot;&amp;quot;;&lt;br /&gt;
           int pos_inicio = 0, pos_fin = 0;&lt;br /&gt;
           for (int i = 0; i &amp;amp;lt; ca.Length-1; i++)&lt;br /&gt;
           {&lt;br /&gt;
               if (ca[i] == '&amp;amp;lt;' &amp;amp;amp;&amp;amp;amp; char.IsDigit(ca[i + 1]))&lt;br /&gt;
               { pos_inicio = i + 1; break; }&lt;br /&gt;
               else&lt;br /&gt;
                   cinta += ca[i];&lt;br /&gt;
           }&lt;br /&gt;
           string final = &amp;quot;&amp;quot;;&lt;br /&gt;
           for (int i = ca.Length - 1; i &amp;amp;gt; 1; i--)&lt;br /&gt;
           {&lt;br /&gt;
               if (ca[i] == '&amp;amp;gt;' &amp;amp;amp;&amp;amp;amp; (ca[i - 2] == ',' ||  char.IsLetterOrDigit(ca[i - 1])))&lt;br /&gt;
               { pos_fin = i; break; }&lt;br /&gt;
               else&lt;br /&gt;
                   final += ca[i];&lt;br /&gt;
           }&lt;br /&gt;
           List&amp;amp;lt;Datos&amp;amp;gt; lista = new List&amp;amp;lt;Datos&amp;amp;gt;();            &lt;br /&gt;
           int cont = 0;&lt;br /&gt;
           string temp=&amp;quot;&amp;quot;;&lt;br /&gt;
           int offset = 0;&lt;br /&gt;
           int lon = 0;&lt;br /&gt;
           string carat = &amp;quot;&amp;quot;;&lt;br /&gt;
           if (pos_fin - pos_inicio &amp;amp;gt; 4)&lt;br /&gt;
           {&lt;br /&gt;
               for (int i = pos_inicio; i &amp;amp;lt;= pos_fin; i++)&lt;br /&gt;
               {&lt;br /&gt;
                   if (ca[i] == ',' &amp;amp;amp;&amp;amp;amp; cont &amp;amp;lt; 2)&lt;br /&gt;
                   {&lt;br /&gt;
                       if (cont == 0)&lt;br /&gt;
                           offset = int.Parse(temp);&lt;br /&gt;
                       else&lt;br /&gt;
                           lon = int.Parse(temp);&lt;br /&gt;
                       temp = &amp;quot;&amp;quot;;&lt;br /&gt;
                       cont++;&lt;br /&gt;
                   }&lt;br /&gt;
                   else if (ca[i] == '&amp;amp;gt;' &amp;amp;amp;&amp;amp;amp; temp.Length &amp;amp;gt; 0)&lt;br /&gt;
                   {&lt;br /&gt;
                      carat = temp;&lt;br /&gt;
                      i++;&lt;br /&gt;
                      Datos dat = new Datos(offset, lon, carat);&lt;br /&gt;
                      lista.Add(dat);&lt;br /&gt;
                      offset = 0; lon = 0; carat = &amp;quot;&amp;quot;; cont = 0; temp = &amp;quot;&amp;quot;;&lt;br /&gt;
                   }&lt;br /&gt;
                   else&lt;br /&gt;
                   {&lt;br /&gt;
                       temp += ca[i];&lt;br /&gt;
                   }&lt;br /&gt;
               }&lt;br /&gt;
           }&lt;br /&gt;
           for (int i = 0; i &amp;amp;lt; lista.Count; i++)&lt;br /&gt;
           {&lt;br /&gt;
               int pos = cinta.Length - lista[i].Offset;&lt;br /&gt;
               int lone = lista[i].Longitud;&lt;br /&gt;
               string cade = &amp;quot;&amp;quot;;&lt;br /&gt;
               if (lista[i].Cod_carater&amp;amp;nbsp;!= &amp;quot;eof&amp;quot;)&lt;br /&gt;
                   cade = lista[i].Cod_carater;&lt;br /&gt;
               while (lone-- &amp;amp;gt; 0)&lt;br /&gt;
                   cinta += cinta[pos++];&lt;br /&gt;
               cinta += cade;&lt;br /&gt;
           }&lt;br /&gt;
           cinta += final;&lt;br /&gt;
           return cinta;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Fuentes ==&lt;br /&gt;
&lt;br /&gt;
[http://www.gedlc.ulpgc.es/docencia/seminarios/cd/Diccionarios/tsld018.htm Problemas de Lz77] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:Telecomunicaciones]]&lt;/div&gt;</summary>
		<author><name>Fredy</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Lz77&amp;diff=591264</id>
		<title>Lz77</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Lz77&amp;diff=591264"/>
		<updated>2011-05-16T13:17:16Z</updated>

		<summary type="html">&lt;p&gt;Fredy: Página creada con ''''LZ77'''Denominado como lz1 Los compresores basados en algoritmos sin pérdida se utilizan cuando la información a comprimir es crítica y no se puede perder información, po...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''LZ77'''Denominado como lz1 Los compresores basados en algoritmos sin pérdida se utilizan cuando la información a comprimir es crítica y no se puede perder información, por ejemplo en los archivos ejecutables, tablas de bases de datos, o cualquier tipo de información que no admita pérdida. El modelo lz77 es muy usado porque es fácil de implementar y es bastante eficiente. &lt;br /&gt;
&lt;br /&gt;
== Historia  ==&lt;br /&gt;
&lt;br /&gt;
En [[1977]] [[Abraham Lempel]] y [[Jacob Ziv]] presentaron su modelo de compresión basado en diccionario, para compresión de texto –compresión de texto se refiere a compresión sin pérdida para cualquier tipo de datos–. Hasta la fecha todos los algoritmos de compresión desarrollados eran básicamente compresores estáticos. El nuevo modelo fue llamado lz77 (lz son la iniciales de sus creadores y 77 el año en que se creó). &lt;br /&gt;
&lt;br /&gt;
== Comprimiendo  ==&lt;br /&gt;
&lt;br /&gt;
Imaginemos que estamos comprimiendo el texto “ab ab”, leemos hasta “ab ” y lo escribimos sin comprimir, luego leemos “ab” y escribimos lo siguiente: con el “desplazamiento” de 0 se halló una coincidencia de dos bytes repetidos. Quedaría así “ab &amp;amp;lt;3,2,eof)&amp;amp;gt; ” (eof fin de fichero). &lt;br /&gt;
&lt;br /&gt;
== Descomprimiendo  ==&lt;br /&gt;
&lt;br /&gt;
Para descomprimir “ab &amp;amp;lt;3,2,eof)&amp;amp;gt; ” Lo primero que tenemos es “ab ” después de la pos 0 que es a se toman dos caracteres que serían ab en entonces la cadena quedaría “ab ab”. &lt;br /&gt;
&lt;br /&gt;
== ¿Cómo funciona?  ==&lt;br /&gt;
&lt;br /&gt;
Pero, ¿cómo sabe el descompresor si lo que lee es un par desplazamiento/tamaño o un byte sin comprimir?. La respuesta es simple, usamos un prefijo, un bit que actúa como una bandera, de forma similar a un interruptor con dos estados que nos permite saber qué tipo de datos vienen a continuación. Si el prefijo es 0, entonces lo que viene es un [[Byte]] sin comprimir. Si, por el contrario, el prefijo es 1, entonces lo que sigue a continuación es un par desplazamiento/tamaño. A estos prefijos también se les llama “banderas”. El par desplazamiento/tamaño es llamado una palabra clave. Una palabra clave es un grupo de bits (o bytes) que contienen alguna clase de información usada por el compresor y el descompresor. La otra salida posible de lz77 es un literal, la cual es simplemente un byte sin comprimir, de manera que la salida de lz77 puede ser de tres formas: &lt;br /&gt;
&lt;br /&gt;
#Literales: son simplemente bytes sin comprimir. &lt;br /&gt;
#Palabras clave: en nuestro caso son pares tamaño/desplazamiento. &lt;br /&gt;
#Banderas: simplemente nos indican si los datos que hay a continuación son literales o palabras clave.&lt;br /&gt;
&lt;br /&gt;
Ahora, como ejemplo, veamos de nuevo nuestra cadena y una salida real de un algoritmo lz77: &lt;br /&gt;
&lt;br /&gt;
 Obtener ‘a’.  Sin coincidencia.  Bandera 0. Literal ’a’.&lt;br /&gt;
 Obtener ‘b’.  Sin coincidencia.  Bandera 0. Literal ’b’.&lt;br /&gt;
 Obtener ‘ ’.  Sin coincidencia.  Bandera 0. Literal ’ ’.&lt;br /&gt;
 Obtener ‘a’.  Coincidencia.      Bandera 1. Palabra clave: desplazamiento = 0, tamaño = 2.&lt;br /&gt;
&lt;br /&gt;
Como puede verse la bandera sólo tiene dos estados posibles, de manera que sólo necesitamos un bit para representarla. Ahora no deberíamos representar las banderas como bytes completos, deberíamos trabajar con bits. La salida de esta compresión es llamada un flujo de bits, porque es un flujo de símbolos de tamaño variable, y la unidad mínima es el bit. &lt;br /&gt;
&lt;br /&gt;
== Seudo Código  ==&lt;br /&gt;
&lt;br /&gt;
Recordemos cómo trabaja lz77, uno se encuentra en una posición dada y trata de hallar hacia atrás (porque se está seguro de que el descompresor ya ha decodificado esos bytes cuando uno se encuentra en dicha posición) una coincidencia, bytes que son iguales a los bytes en la posición actual; si se encuentran se escribe una palabra clave, de otra forma se escribe una literal para poder seguir comprimiendo. &lt;br /&gt;
&lt;br /&gt;
=== Secuencia básica: Compresor  ===&lt;br /&gt;
&lt;br /&gt;
*Guardar el tamaño del archivo a comprimir. &lt;br /&gt;
*Repetir hasta que no hayan más bytes para comprimir. &lt;br /&gt;
*Escanear el buffer de entrada comenzando en posición_actual - tamaño_de_ventana_corrediza hasta el byte actual que estamos comparando. (Notar que el descompresor no puede copiar bytes de una posición desde donde sus bytes no han sido previamente definidos). &lt;br /&gt;
*¿Hemos encontrado un byte igual al actual? &lt;br /&gt;
*Caso Si: &lt;br /&gt;
**Comparamos el siguiente byte desde la posición actual con el byte en la posición siguiente de donde encontramos un byte igual al primero. &lt;br /&gt;
**Continuar comparando hasta que encontremos un byte que no es igual. &lt;br /&gt;
**Se ha encontrado un byte que no es igual. ¿Es el número de bytes mayor que tres? &lt;br /&gt;
*Caso Si: &lt;br /&gt;
**Escribir el desplazamiento del PRIMER byte hallado y el número de bytes repetidos (tamaño). &lt;br /&gt;
**Movemos el puntero a la posición con el número de bytes repetidos (porque no los hemos “salvado”) y seguimos buscando. &lt;br /&gt;
**También se escribe una bandera 1. &lt;br /&gt;
*Caso No: &lt;br /&gt;
**Continúa la búsqueda. &lt;br /&gt;
*Caso No: &lt;br /&gt;
**Si no se encuentra ninguna coincidencia, simplemente se escribe un byte sin comprimir (también se escribe un literal si no hay datos en la ventana corrediza). &lt;br /&gt;
**Debe recordar poner la bandera a 0.&lt;br /&gt;
&lt;br /&gt;
=== Secuencia básica: Descompresor  ===&lt;br /&gt;
&lt;br /&gt;
*Se lee el tamaño del archivo sin comprimir. &lt;br /&gt;
*Se repite hasta que se ha descomprimido todo el archivo. &lt;br /&gt;
*Se lee un bit (la bandera). &lt;br /&gt;
*Si es 0: &lt;br /&gt;
**Se leen 8 bits, se escriben al buffer de salida (recordar que son un byte descomprimido) y se incrementa el puntero a la salida. &lt;br /&gt;
*Si es 1: &lt;br /&gt;
**Se lee el desplazamiento completo (13 bits), luego el tamaño, copiar “tamaño” bytes de “desplazamiento” a la posición actual, y añadir al puntero a la salida “tamaño”.&lt;br /&gt;
&lt;br /&gt;
== Código en C#  ==&lt;br /&gt;
&lt;br /&gt;
=== Comprimir  ===&lt;br /&gt;
&lt;br /&gt;
A este método se le pasa por parámetro la longitud de la ventana, el tamaño del buffer de búsqueda y la cadena a comprimir y el retorna otra cadena con los valores después de la compresión. BB -&amp;amp;gt; Tamaño del buffer de búsqueda. BA -&amp;amp;gt; Tamaño del buffer de anticipación. &lt;br /&gt;
&lt;br /&gt;
 public string Metodo_LZ77_Comprimir(int Long_Ventana, int BB, string cadena)&lt;br /&gt;
       {&lt;br /&gt;
           string lista = &amp;quot;&amp;quot;;&lt;br /&gt;
           int pos_cursor = 0;&lt;br /&gt;
           int BA=Long_Ventana-BB;&lt;br /&gt;
           while (pos_cursor &amp;amp;lt; cadena.Length)&lt;br /&gt;
           {&lt;br /&gt;
               int longitud = 0;&lt;br /&gt;
               int offset = 0;&lt;br /&gt;
               string carat = cadena[pos_cursor].ToString();&lt;br /&gt;
               int w = pos_cursor - 1;&lt;br /&gt;
               int temp = BB;&lt;br /&gt;
               int temp2;&lt;br /&gt;
               int otra = 0;&lt;br /&gt;
               while (w &amp;amp;gt;= 0 &amp;amp;amp;&amp;amp;amp; temp-- &amp;amp;gt; 0)&lt;br /&gt;
               {&lt;br /&gt;
                   temp2 = BA;&lt;br /&gt;
                   if (cadena[w] == cadena[pos_cursor])&lt;br /&gt;
                   {&lt;br /&gt;
                       int offset_temp = otra + 1;&lt;br /&gt;
                       int pos = pos_cursor + 1;  &lt;br /&gt;
                       int b = w + 1;&lt;br /&gt;
                       int lon = 1;&lt;br /&gt;
&lt;br /&gt;
while (pos &amp;amp;lt; cadena.Length &amp;amp;amp;&amp;amp;amp; cadena[b] == cadena[pos] &amp;amp;amp;&amp;amp;amp; temp2-- &amp;amp;gt; 2) &lt;br /&gt;
&lt;br /&gt;
                        { b++; lon++; pos++; }&lt;br /&gt;
                       if (lon &amp;amp;gt;= longitud)&lt;br /&gt;
                       {&lt;br /&gt;
                           longitud = lon;&lt;br /&gt;
                           offset = offset_temp;&lt;br /&gt;
                           if (pos == cadena.Length)&lt;br /&gt;
                               carat = &amp;quot;eof&amp;quot;;&lt;br /&gt;
                           else&lt;br /&gt;
                               carat = cadena[pos].ToString();&lt;br /&gt;
                       }&lt;br /&gt;
                   } w--; otra++;&lt;br /&gt;
               }&lt;br /&gt;
               lista += string.Format(&amp;quot;&amp;amp;lt;{0},{1},{2}&amp;amp;gt;&amp;quot;, offset, longitud, carat);&lt;br /&gt;
               pos_cursor += longitud + 1;&lt;br /&gt;
           }&lt;br /&gt;
           cadenas_comprimidas.Add(lista);&lt;br /&gt;
           return lista;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
=== Descomprimir  ===&lt;br /&gt;
&lt;br /&gt;
Este se le pasa por parámetro la cadena a descomprimir y este retorna la cadena deseada. &lt;br /&gt;
&lt;br /&gt;
 public string Metodo_LZ77_Descompromir_arreglado(string ca)&lt;br /&gt;
       {&lt;br /&gt;
           string cinta = &amp;quot;&amp;quot;;&lt;br /&gt;
           int pos_inicio = 0, pos_fin = 0;&lt;br /&gt;
           for (int i = 0; i &amp;amp;lt; ca.Length-1; i++)&lt;br /&gt;
           {&lt;br /&gt;
               if (ca[i] == '&amp;amp;lt;' &amp;amp;amp;&amp;amp;amp; char.IsDigit(ca[i + 1]))&lt;br /&gt;
               { pos_inicio = i + 1; break; }&lt;br /&gt;
               else&lt;br /&gt;
                   cinta += ca[i];&lt;br /&gt;
           }&lt;br /&gt;
           string final = &amp;quot;&amp;quot;;&lt;br /&gt;
           for (int i = ca.Length - 1; i &amp;amp;gt; 1; i--)&lt;br /&gt;
           {&lt;br /&gt;
               if (ca[i] == '&amp;amp;gt;' &amp;amp;amp;&amp;amp;amp; (ca[i - 2] == ',' ||  char.IsLetterOrDigit(ca[i - 1])))&lt;br /&gt;
               { pos_fin = i; break; }&lt;br /&gt;
               else&lt;br /&gt;
                   final += ca[i];&lt;br /&gt;
           }&lt;br /&gt;
           List&amp;amp;lt;Datos&amp;amp;gt; lista = new List&amp;amp;lt;Datos&amp;amp;gt;();            &lt;br /&gt;
           int cont = 0;&lt;br /&gt;
           string temp=&amp;quot;&amp;quot;;&lt;br /&gt;
           int offset = 0;&lt;br /&gt;
           int lon = 0;&lt;br /&gt;
           string carat = &amp;quot;&amp;quot;;&lt;br /&gt;
           if (pos_fin - pos_inicio &amp;amp;gt; 4)&lt;br /&gt;
           {&lt;br /&gt;
               for (int i = pos_inicio; i &amp;amp;lt;= pos_fin; i++)&lt;br /&gt;
               {&lt;br /&gt;
                   if (ca[i] == ',' &amp;amp;amp;&amp;amp;amp; cont &amp;amp;lt; 2)&lt;br /&gt;
                   {&lt;br /&gt;
                       if (cont == 0)&lt;br /&gt;
                           offset = int.Parse(temp);&lt;br /&gt;
                       else&lt;br /&gt;
                           lon = int.Parse(temp);&lt;br /&gt;
                       temp = &amp;quot;&amp;quot;;&lt;br /&gt;
                       cont++;&lt;br /&gt;
                   }&lt;br /&gt;
                   else if (ca[i] == '&amp;amp;gt;' &amp;amp;amp;&amp;amp;amp; temp.Length &amp;amp;gt; 0)&lt;br /&gt;
                   {&lt;br /&gt;
                      carat = temp;&lt;br /&gt;
                      i++;&lt;br /&gt;
                      Datos dat = new Datos(offset, lon, carat);&lt;br /&gt;
                      lista.Add(dat);&lt;br /&gt;
                      offset = 0; lon = 0; carat = &amp;quot;&amp;quot;; cont = 0; temp = &amp;quot;&amp;quot;;&lt;br /&gt;
                   }&lt;br /&gt;
                   else&lt;br /&gt;
                   {&lt;br /&gt;
                       temp += ca[i];&lt;br /&gt;
                   }&lt;br /&gt;
               }&lt;br /&gt;
           }&lt;br /&gt;
           for (int i = 0; i &amp;amp;lt; lista.Count; i++)&lt;br /&gt;
           {&lt;br /&gt;
               int pos = cinta.Length - lista[i].Offset;&lt;br /&gt;
               int lone = lista[i].Longitud;&lt;br /&gt;
               string cade = &amp;quot;&amp;quot;;&lt;br /&gt;
               if (lista[i].Cod_carater&amp;amp;nbsp;!= &amp;quot;eof&amp;quot;)&lt;br /&gt;
                   cade = lista[i].Cod_carater;&lt;br /&gt;
               while (lone-- &amp;amp;gt; 0)&lt;br /&gt;
                   cinta += cinta[pos++];&lt;br /&gt;
               cinta += cade;&lt;br /&gt;
           }&lt;br /&gt;
           cinta += final;&lt;br /&gt;
           return cinta;&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Fuentes ==&lt;br /&gt;
&lt;br /&gt;
[http://www.gedlc.ulpgc.es/docencia/seminarios/cd/Diccionarios/tsld018.htm Problemas de Lz77] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:Telecomunicaciones]]&lt;/div&gt;</summary>
		<author><name>Fredy</name></author>
		
	</entry>
</feed>