Как получить самое длинное слово из 1 переменной - PullRequest
0 голосов
/ 26 февраля 2020

Определить переменную cWord как символ no-undo.

cWord = "Инструмент веб-разработки".

Требуется ВЫХОД

Разработка

Как мне получить самое длинное слово из этого, когда его только 1 переменная,

Это код progress4gl кстати

Ответы [ 3 ]

1 голос
/ 27 февраля 2020

Просто потому, что мой любимый молот - временная таблица; -)

def var cword as longchar no-undo init "Web Development Tool".

define temp-table tt no-undo
   field cc as char
   .

temp-table tt:read-json( 
    "longchar", 
    '~{"tt":[~{"cc":"' + replace( cword, ' ', '"},~{"cc":"' ) + '"}]}'
).

for each tt by length( cc ) descending:
    message tt.cc.
    leave.
end.

https://abldojo.services.progress.com: 443 / # /? ShareId = 5e56f4a84b1a0f40c34b8c3 c

1 голос
/ 26 февраля 2020
DEFINE VARIABLE cWord          AS CHARACTER   NO-UNDO.
DEFINE VARIABLE iWord          AS INTEGER     NO-UNDO.
DEFINE VARIABLE iLongest       AS INTEGER     NO-UNDO.
DEFINE VARIABLE iLength        AS INTEGER     NO-UNDO.
DEFINE VARIABLE iLongestLength AS INTEGER     NO-UNDO.
DEFINE VARIABLE iEntries       AS INTEGER     NO-UNDO.

ASSIGN cWord = "Web Development Tool"

       iEntries = NUM-ENTRIES (cWord, " ").

DO iWord = 1 TO iEntries:

    ASSIGN iLength = LENGTH (ENTRY (iWord, cWord, " ")) . 

    IF iLength > iLongestLength THEN
    DO:
        ASSIGN iLongest       = iWord
               iLongestLength = iLength .        
    END.
END.

MESSAGE ENTRY (iLongest, cWord, " ") 
    VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
0 голосов
/ 26 февраля 2020

Если у вас есть два слова одинаковой длины, они вернутся первыми.

DEF VAR iCount      AS INT  NO-UNDO.
DEF VAR cLongest    AS CHAR NO-UNDO.
DEF VAR cString     AS CHAR NO-UNDO INIT 'Web Development Tool'.

DO  iCount = 1 TO NUM-ENTRIES(cString,' '):
    cLongest = (IF LENGTH(ENTRY(iCount,cString,' ')) > LENGTH(cLongest) THEN ENTRY(iCount,cString,' ') ELSE cLongest).
END.

MESSAGE cLongest
    VIEW-AS ALERT-BOX INFO BUTTONS OK.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...