IMO lässt sich das Ganze leicht optimieren :
1.LR_utils:
Code: Alles auswählen
procedure RemoveQuotes(var s: String);
begin
If s='' then // <-- Neu
begin s := ''; // <-- Neu
exit; // <-- Neu
end; // <-- Neu
if (s[1] = '"') and (s[Length(s)] = '"') then //<-- hier kam es natürlich zum Absturz
s := Copy(s, 2, Length(s) - 2);
end;
2. LR_CLASS
Die nach der Änderung sichtbare Fehlermeldung in habe ich noch etwas erweitert :
Code: Alles auswählen
procedure TfrReport.GetVariableValue(const s: String; var aValue: Variant);
......
......
......
if s <> SubValue then
begin
SubValue := s;
aValue:= frParser.Calc(s);
SubValue := '';
end
else
begin //<-- Neu
If s='' //<-- Neu
then raise(EParserError.Create('empty element;')) //<-- Neu
else //<-- Neu
raise(EParserError.Create('Undefined symbol ";"'+SubValue+';'));
end; //<-- Neu
end;
end;
end;
end;
P.S. Ich hätte das Ganze natürlich gern formatiert, weiß aber z.B. nicht, wie man einrückt,
da Leerzeichen in der Vorschau verschwinden. Kann mir jemand einen Tip geben ??!!!!!