Zeichen im Satz prüfen



  • Hallo,
    ich habe folgendes problem und zwar, möchte ich zwischen ' und ' überprüfen, ob sich noch so ein zeichen ' im '' befindet.
    beispiel;
    'Ich, der Bequemste, duld**'** es kaum.'
    Das was Fett dargestellt ist, möchte ich überprüfen, die zeichen außen sind unwichtig.

    if (Text.Pos("'"))
    {
    
    }
    

    so wird das aber nicht funktionieren, ich möchte auf diese Zeichen prüfen die innerhalb der ' ' zeichen stehen.

    EDIT: oder vieleicht noch einfacher, das was zwischen (' und ', steht, möchte ich auf ' überprüfen.

    EDIT: ich habe das so gelöst:

    for (int i=0; i<Liste->Count-1; i++)
    {
      Pos1 = Liste->Strings[i].Pos("('")+2;
      Pos2 = Liste->Strings[i].Pos("',")-3;
      Text = Liste->Strings[i].SubString(Pos1,Pos2);
      if (!Text.Pos("'"))
      {
        Memo1->Lines->Add(Text);
      }
    }
    

    Vielen Dank.

    MfG



  • SubString erwartet als 2. Parameter die Anzahl der Zeichen (nicht die 2. Position), d.h.

    Pos1 = Edit2->Text.Pos("('");
    Pos2 = Edit2->Text.Pos("',");
    Text = Edit2->Text.SubString(Pos1,Pos2-Pos1+1);
    


  • Du könntest doch über pos() auf das erste Vorkommnis von ' prüfen. Dann dieses Char löschen. Dann auf's nächste ' suchen, das ebenfalls löschen, dann wieder suchen, und wenn er dann eines findet, dann hast du 3 gefunden, also das vorherige lag zwischen 'und'.
    Nachteil: du veränders deinen Originalstring 😕


Anmelden zum Antworten