Ver Mensaje Individual
  #4  
Antiguo 23-02-2015
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Quizás es porque el fichero tiene caracteres raros en medio.
Puede que el fichero esté formado por caracteres Unicode de mas de un byte y por eso.

Ten en cuenta que read_file devuelve un tipo de dato AnsiString y tu lo cargas dentro de un string.
Dependiendo de la versión del Delphi, un string puede estar formado por caracteres de mas de un byte. El AnsiString solo contempla caracteres de un byte.
Código Delphi [-]
function read_file(const FileName: String): AnsiString;
...

function cortar(archivo: String; deaca: String; hastaaca: String): String;
var text:string;
begin
  text := read_file(archivo);

Si te fijas sobre el final de cut(), verás que hace una transformación de AnsiString a string;

Código Delphi [-]
  // Recorre un AnsiString carácter a carácter y lo concatena a un string.
  // AnsiString son caracteres de un byte.
  // string puede contener caracteres de mas de un byte
  for i := 0 to (Reslength-1) do
    Result := Result+Buffer[Pos(Delimit1, Buffer)+(Length(Delimit1)+i)];
Responder Con Cita