hallo jungens
ich muss ein altes projekt in delphi 2007 zum laufen bringen.
in diesem projekt wird eine xpparser.pas verwendet. so wie es ausschaut hat das Ding was mit
XML am hut. da ich mich damit nicht auskenne und beim kompilieren immer folgende fehlermeldung erhalte wollte ich fragen ob sich jemand damit auskennt und ev. eine beschreibung oder ähnliches hat warum das ding unter delphi 2007 nicht mehr funzt:
Erste Gelegenheit für Exception bei $7C812A5B. Exception-Klasse EXpParserError mit Meldung 'Invalid XML name: ' ''. Prozess Reports.exe (4844)
Der Fehler tritt anscheinend in folgender Funktion auf:
Delphi-Quellcode:
function TXpParser.ReadNameToken(aValFirst : Boolean) : DOMString;
var
TempChar : DOMChar; {!!.52}
First : Boolean;
ResultLen : Integer; {!!.52}
CurrLen : Integer; {!!.52}
begin
if TryRead(Xpc_ParamEntity) then begin {!!.52 - Start}
ParseParameterEntityRef(True, False);
SkipWhiteSpace(True);
end; {!!.52 - End}
First := aValFirst;
Result := '';
CurrLen := 0; {!!.52 - Start}
ResultLen := 20;
SetLength(Result, ResultLen); {!!.52 - End}
while True do begin
TempChar := ReadChar(False);
if (TempChar = '%') or (TempChar = '<') or (TempChar = '>') or
(TempChar = '&') or (TempChar = ',') or (TempChar = '|') or
(TempChar = '*') or (TempChar = '+') or (TempChar = '?') or
(TempChar = ')') or (TempChar = '=') or (TempChar = #39) or
(TempChar = '"') or (TempChar = '[') or (TempChar = ' ') or
(TempChar = #9) or (TempChar = #$0A) or (TempChar = #$0D) or
(TempChar = ';') or (TempChar = '/') or (TempChar = '') or {!!.51}{!!.52}
(TempChar = #1) then {!!.52}
Break
else
if XpValidNameChar(First, TempChar) then begin {!!.52 - Start}
if (CurrLen + 2 > ResultLen) then begin
ResultLen := ResultLen * 2;
SetLength(Result, ResultLen);
end;
SkipChar;
Inc(CurrLen);
Result[CurrLen] := TempChar;
end else {!!.52 - End}
raise EXpParserError.CreateError(FFilter.Line,
FFilter.LinePos,
FFilter.URL,
sInvalidName +
QuotedStr(TempChar));
First := False;
end;
SetLength(Result, CurrLen); {!!.52}
end;