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); 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
FileStream.ReadBuffer(Buffer, 3);
HasBOM := (Buffer[0] = BOM[0]) and (Buffer[1] = BOM[1]) and (Buffer[2] = BOM[2]);
if HasBOM then
begin
TempStream.CopyFrom(FileStream, FileStream.Size - 3);
end
else
begin
FileStream.Position := 0;
TempStream.CopyFrom(FileStream, FileStream.Size);
end;
finally
FileStream.Free;
end;
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.