Einzelnen Beitrag anzeigen

C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: [Optimiert] Explode Prozedur - Reloaded (Ersatz für Code

  Alt 23. Dez 2007, 12:56
Hi,
Ich hab gerade bei der einen Fehler in der Procedure QSExplode endeckt,
und zwar kommt es manchmal zu einem "Fehler bei Bereichsprüfung"

Delphi-Quellcode:
Procedure TStringDivider.QSExplode(Const aText: String; aItems: TStrings);
// ...
  While i <= k Do Begin
    If (fPatternFirstChar = aText[i]) And (fPatternLastChar = aText[i + fPatternLength1]) Then
      If (fPatternLength < 3) Or CompareMem(@aText[i + 1],fPatternPtr,fPatternLength2) Then Begin
        aItems.Add(Copy(aText,iTextStart,i - iTextStart));
        inc(i,fPatternLength);
        iTextStart := i;
        Continue;
      End;
    inc(i,fSkip[aText[i + fPatternLength]]); //<-- Hier Tritt der Fehler auf
  End;
// ...
Ich hab mal ein Beispielprojekt gemacht den Fehler zu veranschaulichen.
Angehängte Dateien
Dateityp: rar explodetest_169.rar (3,5 KB, 19x aufgerufen)
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat