Editor de Pangramas

Para saber si una familia tipográfica (lo que los profanos llaman “fuente”) contiene todos los tipos necesarios para un idioma, y si estos están diseñados de forma armónica, los tipógrafos emplean frases que contienen todos los caracteres posibles. Este editor ayuda en el proceso de escribir nuestros propios pangramas, contando cuántas veces aparece cada carácter según vamos escribiendo.

'Programa para buscar pangramas (frases con todas las letras)
'Incluye un editor y un contador de letras.
 
CLS
REDIM w(255)
LOCATE 9, 1
FOR f = 32 TO 255
    COLOR 8
    PRINT CHR$(f); "    ";
NEXT f
COLOR 7
 
texto$ = "cocacola"
x = 1
DO
    LOCATE 1, 1
    PRINT SPACE$(80);
    LOCATE 1, 1
 
    PRINT LEFT$(texto$, x) + CHR$(219) + MID$(texto$, x + 1);
 
    DO
        I$ = INKEY$
    LOOP WHILE I$ = ""
    SELECT CASE I$
        CASE CHR$(0) + "K"
            x = x - 1
            IF x < 0 THEN x = 1
        CASE CHR$(0) + "M"
            x = x + 1
            IF x > LEN(texto$) + 1 THEN x = LEN(texto$) + 1
        CASE CHR$(8) 'borrar atr s
            IF x > 0 THEN
                texto$ = LEFT$(texto$, x - 1) + MID$(texto$, x + 1)
            ELSE
                texto$ = MID$(texto$, x + 1)
            END IF
            x = x - 1
            IF x < 1 THEN x = 1
        CASE CHR$(0) + "S"'borrar adelante
            texto$ = LEFT$(texto$, x) + MID$(texto$, x + 2)
        CASE " " TO CHR$(255)
            texto$ = LEFT$(texto$, x) + I$ + MID$(texto$, x + 1)
            x = x + 1
    END SELECT
 
        REDIM w(255)
        FOR f = 1 TO LEN(texto$)
            char = ASC(MID$(texto$, f, 1))
            w(char) = w(char) + 1
        NEXT
        LOCATE 9, 1
        FOR f = 32 TO 255
 
 
            IF w(f) > 0 THEN
            COLOR 7
            PRINT CHR$(f);
            PRINT USING "### "; w(f);
            ELSE
            COLOR 8
            PRINT CHR$(f); "    ";
            END IF
        NEXT f
 
LOOP