EditLine 2/2

 BBS: Inland Empire Archive
Date: 02-11-93 (11:56)             Number: 399
From: MARK BUTLER                  Refer#: NONE
  To: RUSTY GORDON                  Recvd: NO  
Subj: EditLine  2/2                  Conf: (2) Quik_Bas
 >>> continued from the previous message

                END IF
            CASE ENTER
                exitCode = 0
                quit = TRUE
            CASE HOME
                ptr = 0
            CASE ENDKEY
                ptr = length - 1
            CASE CTRLRIGHTARROW
                DO UNTIL MID$(a$, ptr + 1, 1) = " " OR ptr = length - 1
                    ptr = ptr + 1
                LOOP
                DO UNTIL MID$(a$, ptr + 1, 1) <> " " OR ptr = length - 1
                    ptr = ptr + 1
                LOOP
            CASE CTRLLEFTARROW
                DO UNTIL MID$(a$, ptr + 1, 1) = " " OR ptr = 0
                    ptr = ptr - 1
                LOOP
                DO UNTIL MID$(a$, ptr + 1, 1) <> " " OR ptr = 0
                    ptr = ptr - 1
                LOOP
                DO UNTIL MID$(a$, ptr + 1, 1) = " " OR ptr = 0
                    ptr = ptr - 1
                LOOP
                IF ptr THEN
                    ptr = ptr + 1
                END IF
            CASE CTRLY
                a$ = SPACE$(length)
                ptr = 0
            CASE CTRLQ
                ctrlQflag = TRUE
            CASE ESCAPE
                a$ = original$
                ptr = 0
                insirt = TRUE
            CASE IS > 255

                SOUND 999, 1
            CASE IS < 32
                SOUND 999, 1
            CASE ELSE
                kee$ = CHR$(kee)
                IF insirt THEN
                    a$ = LEFT$(a$, ptr) + kee$ + MID$(a$, ptr + 1)
                    a$ = LEFT$(a$, length)
                ELSEIF ptr < length THEN
                    MID$(a$, ptr + 1, 1) = kee$
                END IF
                IF ptr < length THEN
                    ptr = ptr + 1
                ELSE
                    SOUND 999, 1
                END IF
                IF kee$ = "y" AND ctrlQflag THEN
                    IF ptr <= length THEN
                        sp = length - ptr + 1
                        MID$(a$, ptr, sp) = SPACE$(sp)
                        ptr = ptr - 1
                    END IF
                END IF
                ctrlQflag = FALSE
        END SELECT
    LOOP UNTIL quit
END SUB

FUNCTION ScanCode
    DO
        a$ = INKEY$
    LOOP WHILE a$ = ""
    IF ASC(LEFT$(a$, 1)) = 0 THEN
        ScanCode = -ASC(RIGHT$(a$, 1))
    ELSE
        ScanCode = ASC(a$)
    END IF
END FUNCTION
==========================8< Cut Here 8<=============================

  Hope this helps..

תש [-M-H-B-] שת

--- timEd/B7 * 186,000 miles/sec: Not just a good idea, it's the LAW.
 * Origin:  Terminal Oasis, Portland OR  (1:105/330.5)
Outer Court
Echo Basic Postings

Books at Amazon:

Back to BASIC: The History, Corruption, and Future of the Language

Hackers: Heroes of the Computer Revolution (including Tiny BASIC)

Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution

The Advent of the Algorithm: The Idea that Rules the World

Moths in the Machine: The Power and Perils of Programming

Mastering Visual Basic .NET