Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Lectura Archivo Texto y caracteres especiales (https://www.clubdelphi.com/foros/showthread.php?t=76831)

ASAPLTDA 30-11-2011 00:00:12

Lectura Archivo Texto y caracteres especiales
 
Hola Foristas,

me están entregando una factura impresa en el disco del computador (texto) , este tiene una serie de caracteres de control lo que no he podido encontrar la forma de eliminarlos.
Cuando veo los registros en la pantalla se ver ordenados tal como viene la factura pero cuando trato de extraer la información basado en la posicion de la fila y columna, no logro obtener si no unos cuantos.

El proceso es el siguiente leo la factura usando el tipo archivo de delphi 5 , y lo grabo a una string , la string la grabo en un registro de un dataclient y lo sigo viendo bien, pero las posciones no concuerdan
Hice un recorrido caracter a caracter elimnado los que no son imprimibles pero no funciona.

Alguien podría darme una sugerencia?

Gracias

Casimiro Notevi 30-11-2011 09:13:04

¿Puedes poner un trozo del fichero para que lo veamos?, puede que estén guardados con un formato distinto de caracteres, 8859-1 o utf8, por ejemplo.

newtron 30-11-2011 09:31:58

También depende de cómo estés leyendo el archivo, si es caracter a caracter o linea a linea, hay que recordar que las lineas acaban con un #13+#10

Saludos

ASAPLTDA 01-12-2011 18:02:31

Eliminacion de Carareceres especiales
 
Hola amigos del foro por sus comentarios , hice esta pequena rutina para elimnar los caractes especiales y parece que las cosas marchan mejor, estoy revisando
Código Delphi [-]
function TFPEDINTCG1.BORRA_CARACTERES_ESPECIALES(P_STRING:STRING):STRING;
var
  w_s:string;
  W_l:Integer;
  w_letra:string;
  W_t:Integer;
  W_CHR :Char ;
  W_ORD:Integer;
begin
  w_s:= P_STRING;
  w_l :=  Length(w_s)   ;
  FOR w_t:= 0 to w_l  do begin
      w_letra:= w_s[w_T];
      W_CHR:=W_LETRA[1];
      W_ORD:=Ord(W_CHR);
      IF (W_ORD < 32) or (W_ORD > 127)   then
         w_s[w_T]:=  ' ';
    end;
   Result := w_s;

end;


La franja horaria es GMT +2. Ahora son las 06:16:11.

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