Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-12-2006
morodo morodo is offline
Registrado
 
Registrado: dic 2006
Posts: 4
Poder: 0
morodo Va por buen camino
Problema con archivos de texto.

Hola buenas noches a todos!!
Soy nuevo en este foro y me he registrado para consultaros por que ya me e servido de muchas respuestas aqui dadas para otros casos pero para ésta no encuentro solución.
Resulta que tengo serios problemas con el ENTER, la Ñ y nuestras coleguitas á,é,í,ó,ú al manipular un file of text.
El programa es un compresor de texto que lo que intenta es analizar un fichero de texto ordenando las distintas letras por la frecuencia en que estas aparezcan y creando un arbol binario con las distintas letras, adjudicandole un codigo binario de menor numero de bits a las letras con mayor frecuencia para despues guardar en un archivo "comprimido" la ristra de bits que es el texto en si y la tabla con los distintos codigos binarios de cada letra para despues poder "descomprimirlo" (Es un algoritmo que alguno conocereis por que es de estos que tiene nombre y todo )
Ahora bien, he conseguido que el programa me comprima un texto larguisimo siempre y cuando no haya ningun retorno de carro pues éste con readln(f,c) hay veces que se detiene y no sigue con los caracteres que le siguen, veces que lee las filas impares, y veces que lo cuenta como dos caracteres al igual que "ñáéíóú" que lo toma como un 195(a veces 196) seguido de otro valor ASCII.Es decir, como si uno de esos caracteres fuera la marca de ke es un caracter especial y el siguiente el ke le diferencia de los demas.

Estos problemas me traen por la calle de la amargura por que parece algo muy simple pero que llego meses con el y ni el profesor de la universidad me lo ha sabido dejar bien claro dejandome con el "tu prueba" tirado como una colilla

Si alguien pudiera decirme cual es la manera correcta de ir leyendo uno a uno todos los caracteres de un fichero de texto hasta llegar al eof(o utilizando otro while con eoln ) y que no me dieran problemas los caracteres especiales le estaria eternamente agradecido.Algo he leido por ahi de leer el enter como #10+#13 o algo asi pero no saco nada en claro.

Muchas gracias de anticipado fenómenos
Responder Con Cita
  #2  
Antiguo 28-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Como dijo Jack, vamos por partes. Primero el carácter extraño $C3 (195) que te aparece con las vocales acentuadas, es porque el archivo esta usando la codificación UTF-8 y no la ANSI. En la codificación UTF-8 los caracteres pueden estar compuestos por 1,2 o incluso 3 bytes.

Segundo, la función readln lee una cadena hasta encontrar los caracteres #13#10, pero no los lee, simplemente coloca el puntero justo después, para que la siguiente instrucción readln lea la siguiente linea. El problema es cuando en el archivo aparecen caracteres #13 o #10 sueltos, entonces la instrucción readln funciona mal, cosa normal ya que un archivo de esas características no se estaría ajustando al formato que deben de tener los archivos de texto en una plataforma windows.

Por ultimo, yo te recomiendo que si no te quieres romper la cabeza con codificaciones, saltos de linea, etc. lo mejor es que leas el archivo de texto como si fuera un archivo binario. Que por cierto es igual o mas sencillo que leer uno de texto.
Responder Con Cita
  #3  
Antiguo 08-01-2007
morodo morodo is offline
Registrado
 
Registrado: dic 2006
Posts: 4
Poder: 0
morodo Va por buen camino
Gracias dios!!

Desde hoy estas en mi lista de dioses seoane al lado de fenomenos como kratos y bob marley jajaja
no hay ningun problema a la hora de leer si se lee de forma binaria gracias por favorR!!!!
te invitaria a mil copas fenomeno!!
Viva este foro!!
GRACIAS!!!
Responder Con Cita
  #4  
Antiguo 28-04-2011
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Dios, personificación de la fuerza y el poder, cantante reggae y marihuanero, amigo, fenómeno!!!

Jajajaj qué chistoso. Llegué a este hilo por accidente, y no había leido un agradecimiento tal!
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #5  
Antiguo 29-04-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues vaya... no ha vuelto nunca más, así que olvidaría pronto al Dios Seoane
Responder Con Cita
  #6  
Antiguo 29-04-2011
morodo morodo is offline
Registrado
 
Registrado: dic 2006
Posts: 4
Poder: 0
morodo Va por buen camino
Alabado sea el dios seoane

No me acordaba de esto madre mía.
Acabo de leer a mi yo de hace 5 años.
Y solo puedo agradecer a foros como este y a su gente por la gran ayuda que brindáis a todos.
Muchas gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear un Reporte a partir de archivos de texto franciscobucio Impresión 4 18-01-2007 18:49:09
Archivos de Texto y binario (manejar) h2o_mx OOP 2 20-04-2006 08:28:55
Ayuda con Archivos de Texto!! Ariatna Varios 8 03-02-2005 00:21:04
Reporte en Diferentes Archivos de Texto jovehe Impresión 4 14-10-2004 20:36:21
duda sobre archivos de texto eduarcol Varios 4 05-02-2004 15:06:31


La franja horaria es GMT +2. Ahora son las 05:18:58.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi