Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 23-07-2025
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 646
Poder: 23
mRoman Va por buen camino
Solucionado

Hola buenos dias.

El código que me proporcionó "navbuoy" me ayudo, me orientó a como solucionarlo. El problema con ese código es que no es para la version de Delphi que estoy usando (D6), por lo tanto lo cambie y quedó de este forma:

Código Delphi [-]
procedure RemoveBOMFromFile(const FileName: string);
const
  BOM: array[0..2] of Byte = ($EF, $BB, $BF); // UTF-8 BOM
var
  FileStream: TFileStream;
  TempStream: TMemoryStream;
  Buffer: array[0..2] of Byte;
  HasBOM: Boolean;
begin
  FileStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  TempStream := TMemoryStream.Create;
  try
    // Leer primeros 3 bytes
    FileStream.ReadBuffer(Buffer, 3);
    HasBOM := (Buffer[0] = BOM[0]) and (Buffer[1] = BOM[1]) and (Buffer[2] = BOM[2]);

    if HasBOM then
    begin
      // Si tiene BOM, copiar el resto del archivo sin los primeros 3 bytes
      TempStream.CopyFrom(FileStream, FileStream.Size - 3);
    end
    else
    begin
      // Si no tiene BOM, copiar todo el archivo desde el inicio
      FileStream.Position := 0;
      TempStream.CopyFrom(FileStream, FileStream.Size);
    end;
  finally
    FileStream.Free;
  end;

  // Reescribir archivo sin BOM
  FileStream := TFileStream.Create(FileName, fmCreate);
  try
    TempStream.Position := 0;
    FileStream.CopyFrom(TempStream, TempStream.Size);
  finally
    TempStream.Free;
    FileStream.Free;
  end;
end;


Y lo mando llamar asi:
Código Delphi [-]
  FLBox.Directory:='.\';

  for x:=0 to FLBox.Count - 1 do
  begin
      RemoveBOMFromFile(FLBox.Items.Strings[x]);
  end;

Agregue un componente TFileListBox para agregar ahi los archivos que se van a procesar y tomar de ahi el nombre, que es enviado como parámetro al procedimiento "RemoveBOMFromFile".

Gracias a todos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Caracteres raros al capturar fichero txt comba Varios 4 07-09-2010 17:59:07
caracteres raros en delphi unko! Varios 7 19-12-2006 11:56:34
Caracteres raros al imprimir reporte joserobertorc Impresión 0 07-01-2005 21:22:18
Caracteres Raros en Impresora de Tickets muli Impresión 7 16-04-2004 21:13:11
Caracteres raros con dbase kes Conexión con bases de datos 4 09-07-2003 20:05:15


La franja horaria es GMT +2. Ahora son las 06:08:25.


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