Essa função de function TACBrTXTClass.LFill(const Value: String;
Size: Integer = 0;
Nulo: Boolean = false;
Caracter: Char = '0'): String;
poderia ter um incremento Value := StringReplace(Result, FDelimitador,'', [rfReplaceAll]) , pois acaba que se o value passado possuir o delimitador gera erro no arquivo.
exemplo spedfiscal se tiver no nome do produto um "|" ele gera um erro grotesco no sped, para eu corrigir isso em todos os lugares q são texto tenho que usar o StringReplace.
isso poderia ser feito ?
function TACBrTXTClass.LFill(const Value: String;
Size: Integer = 0;
Nulo: Boolean = false;
Caracter: Char = '0'): String;
begin
if (Nulo) and (Length(Value) = 0) then
begin
Result := FDelimitador;
Exit;
end;
/// Se a propriedade TrimString = true, Result retorna sem espaços em branco
/// iniciais e finais.
if FTrimString then
Result := Trim(Result);
Value := StringReplace(Value, FDelimitador,'', [rfReplaceAll])
if (Size > 0) and (Length(Value) > Size) then
Result := Copy(Value, 1, Size)
else
Result := StringOfChar(Caracter, Size - length(Value)) + Value;
Result := FDelimitador + Result;
end;