Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Buchstaben Kette in Klammern erkennen (https://www.delphipraxis.net/199544-buchstaben-kette-klammern-erkennen.html)

Trafel21 31. Jan 2019 13:19

AW: Buchstaben Kette in Klammern erkennen
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1424503)
Zitat:

Zitat von Trafel21 (Beitrag 1424499)
Hier funktioniert nur das if (NUMBER_C SIMILAR TO '(') nicht. Es kommt ein Fehler "Invalid SIMILAR TO pattern".

Ziemlich verzweifelnd. :?

bei den anderen Ifs schreibst Du
Delphi-Quellcode:
if (:NUMBER_C SIMILAR TO
Fehlt da nur ein Doppelpunkt?

Ob oder ohne spielt in diesem Fall leider keine Rolle.



Code:
    IN_NUMBERS = REPLACE(:IN_NUMBERS,'(','°');
    IN_NUMBERS = REPLACE(:IN_NUMBERS,')','`');

    I=0;
    NUMBER_C = NULL;
    NUMBERS = NULL;
    while (:I<CHAR_LENGTH(:IN_NUMBERS)) do
    begin
      I= :I+1;
      NUMBER_C = SUBSTRING(:IN_NUMBERS FROM :I FOR 1);

      --EXCEPTION EXCEPT_LEER NUMBER_C;
      if (:NUMBER_C SIMILAR TO '°') then
      begin
        NUMBERS = :NUMBER_C; -- ( auslesen
        I=:I+1;
        --EXCEPTION EXCEPT_LEER NUMBERS;
        while (:I<CHAR_LENGTH(:IN_NUMBERS)) do
        begin
          NUMBER_C = SUBSTRING(:IN_NUMBERS FROM :I FOR 1);

          IF (:NUMBER_C SIMILAR TO '[[:ALPHA:]]') THEN
          begin
            NUMBERS = NUMBERS || :NUMBER_C; -- Nach der ( Buchstabeninhalt auslesen
          end
          else IF (:NUMBER_C SIMILAR TO '`') THEN
          begin
              NUMBERS = NUMBERS || :NUMBER_C; -- ) auslesen
              IN_NUMBERS = REPLACE(:IN_NUMBERS,NUMBERS,NUMBERS||'^'); -- zur Trennung ^ setzen
              break;
          end

        I=:I+1;
        end
      end
    end
Ich hab die Klammern einfach mit anderen Zeichen replaced. Jetzt funktioniert es zumindestens schon einmal zur Hälfte, die 1. Buchstabenfolge wird ein ^ angehangen. Die 2. Wird leider nicht gefunden. Wie verhält sich den ein Break in 2 While's mit einer If ab frage?

Code:
while (x)
begin
   while (y)
   begin
    if (z) then break;
   end
end
Spring ich aus beiden heraus? oder nur aus der while y ?

Moombas 31. Jan 2019 13:41

AW: Buchstaben Kette in Klammern erkennen
 
Zitat:

Google sagt für "SQL Break": BREAK beendet die aktuelle WHILE-Schleife. Wenn die aktuelle WHILE-Schleife mit einer anderen verschachtelt ist, beendet BREAK nur die aktuelle Schleife, und die Steuerung wird für die nächste Anweisung in der äußeren Schleife erteilt.
Und aus dem reinen Verständnis hätte ich dies auch so verstanden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:18 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz