Einzelnen Beitrag anzeigen

Monday

Registriert seit: 24. Aug 2012
103 Beiträge
 
FreePascal / Lazarus
 
#1

StringReplace und Sigsegv

  Alt 21. Sep 2013, 11:59
Hallo,

ich stehe vor einem echt seltsamen Problem mit StringReplace. Der Code ist etwas größer, daher habe ich es etwas verkürzt:

Code:
  hs1 := hs; //= strings
{funktioniert}  hs1 := Stringreplace(hs1, 'r', '2', [rfReplaceAll]);
{funktioniert}  hs1 := Stringreplace(hs1, 'n', '2', [rfReplaceAll]);
{funktioniert}  hs1 := Stringreplace(hs1, 'b', '2', [rfReplaceAll]);
{Sigsegv Fehler!?}  hs1 := Stringreplace(hs1, 'k', '2', [rfReplaceAll]);
{Sigsegv Fehler!?}  hs1 := Stringreplace(hs1, 'q', '2', [rfReplaceAll]);
{funktioniert}  hs1 := Stringreplace(hs1, 'R', '1', [rfReplaceAll]);
{funktioniert}  hs1 := Stringreplace(hs1, 'N', '1', [rfReplaceAll]);
Ich verstehe nicht, warum "h" oder "q" ein problem darstellt. hs enthält verschiedene Buchstaben, kann die Buchstaben die ersetzt werden sollen enthalten, muss aber nicht. Des seltsame ist, das vorher die stringreplace normal ausgeführt werden, dann aber auf einmal ein sigsegv auftritt obwohl es im prinzip das völlig gleiche ist. Noch seltsamer ist, das an dieser Stelle sigsegv aber auch nur manchmal auftritt und nicht immer... (10 mal ausgeführt, einmal sigsegv...) wenn er aber auftritt, dann bei stringreplace.

Hat jemand eine Idee? Ist es denkbar dass der Sigsegv an dieser Stelle auch nur "zufällig" aufgetretten ist und der wirkliche Fehler woanders zu suchen ist??


Lg
Monday


P.S. zu dem Zweck der Replace: Es ist ein Hilfsstring für einen späteren Algorithmus...
  Mit Zitat antworten Zitat