fehler - for-schleife - ansistring - ThrowIfOutOfRange



  • Hallo,
    ich habe ein programm programmiert, aber es kommt manchmal der fehler "ThrowIfOutOfRange" wie kann ihc das verhindern?
    der code ist

    AnsiString TForm1::Invert(AnsiString texttoinvert, int delay)
    {
      for(int p = 1; p < texttoinvert.Length() + 1; p += delay * 2)
      {
        for(int a = 0; a < delay + 1; a++)
        {
          if(a < texttoinvert.Length())
          {
            if(texttoinvert[p + a] == '0')
              texttoinvert[p + a] = '1';
            else
              texttoinvert[p + a] = '0';
          }
        }
      }
      return texttoinvert;
    }
    

    texttoinvert ist ein string, der nur aus 1 und 0 besteht z.B. 11001011011010



  • Hallo, der Fehler ist da:
    .
    .
    .
    if(a < texttoinvert.Length())
    .
    .
    .

    if(( a+p) < texttoinvert.Length()) sollte helfen



  • Danke, es funktioniert


Anmelden zum Antworten