Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; Tarea 1
- (define (Inicio)
- (set 'dic (cargaDic))
- (close diccionario)
- ;; GUI para seleccionar archivo y boton analizar
- (text-font "Times New Roman" 18)
- (win-dialog 'VentanaPrincipal 'console 200 0 600 500 "Tarea 1")
- (prop-color 'VentanaPrincipal 247 247 247)
- (win-label 'LabelArchivo 'VentanaPrincipal 20 50 150 17 "Seleccione Archivo:")
- (prop-color 'LabelArchivo 247 247 247)
- (win-pushbutton 'BotonArchivo 'VentanaPrincipal 20 70 100 30 "Seleccionar..." 'abrirArchivo)
- (win-editline 'LabelNombreArchivo 'VentanaPrincipal 123 75 450 20 "")
- (prop-enabled 'LabelNombreArchivo 0)
- (text-font "Times New Roman" 30)
- (win-pushbutton 'BotonAnalizar 'VentanaPrincipal 200 115 100 40 "Analizar" 'analizador)
- ;; GUI para Resultados
- (text-font "Times New Roman" 25)
- (win-label 'LabelResultado 'VentanaPrincipal 20 160 120 25 "Resultados:")
- (prop-color 'LabelResultado 247 247 247)
- (text-font "Times New Roman" 18)
- (win-editbox 'CajaResultado 'VentanaPrincipal 20 189 546 220 "")
- (prop-text 'CajaResultado (string dic))
- (set 'tamano 2)
- ;; GUI para clasificar palabras
- )
- ;abre el archivo y lo muestra en un cuadro de texto...
- (define (abrirArchivo)
- (prop-text 'LabelNombreArchivo (set 'Archivo (file-dialog "load a file" "" "c:\\" "text file (*.TXT)|*.TXT|any file (*.*)|*.*" 0)))
- (set 'File (open Archivo "read"))
- (if (window? 'VentanaArchivo) (win-delete 'VentanaArchivo))
- (win-dialog 'VentanaArchivo 'VentanaPrincipal 350 470 930 300 "Arhivo")
- (win-editbox 'ContenedorArchivo 'VentanaArchivo 0 0 915 262)
- (prop-text 'ContenedorArchivo (string (Lector File)))
- (close File)
- )
- (define (analizador)
- (set 'dic (map rest (reverse (sort (ponedor dic)))))
- (listaCategorias)
- (cond
- ((empty? a) '())
- ((basura? (first a)) (_analizador (set 'a (rest a))))
- ((valido? (first a)) (validacion (first a)))
- )
- )
- (define (_analizador lista)
- (write-line "ciclo de analizador lista")
- (prop-text 'CajaResultado (string lista))
- (cond
- ((empty? a) '())
- ((basura? (first a)) (_analizador (set 'a (rest a))))
- ((valido? (first a)) (validacion (first a)))
- )
- )
- (define (validacion elemento)
- (write-line "validacion")
- (cond
- ((> (length (assoc elemento dic)) 2) (validacion_especial elemento dic))
- (true (sumar (last (assoc elemento dic))))
- )
- )
- (define (validacion_especial elemento diccionario_m)
- (write-line "validacion especial")
- (set 'tamano (length (assoc elemento diccionario_m)))
- (set 'boleano true)
- (for (s 0 (- tamano 1) 1)
- (if (not boleano) (break))
- (set 'boleano (= (nth s a) (nth s (assoc elemento diccionario_m))))
- )
- (write-line "despues del for")
- (if boleano (sumar (last (assoc elemento diccionario_m))))
- (set 'miembro (rest (member (assoc elemento diccionario_m) diccionario_m)))
- (if (!= (assoc elemento miembro) nil) (validacion_especial elemento miembro))
- )
- (define (clasificar elemento)
- (win-dialog 'pop_up 'console 800 0 390 300 "Clasificar")
- (prop-color 'pop_up 247 247 247)
- (win-label 'Palabra 'pop_up 10 10 90 20 "Palabra:")
- (prop-color 'Palabra 247 247 247)
- (win-editline 'PalabraCla 'pop_up 10 35 350 25)
- (win-pushbutton 'clasificar 'pop_up 10 70 70 25 "Clasificar" )
- (win-pushbutton 'bas 'pop_up 110 70 90 25 "A la Basura" )
- (win-pushbutton 'agregar 'pop_up 230 70 130 25 "Clasificar Palabra" )
- (win-label 'catego 'pop_up 100 10 300 25 "Categoria:" )
- (prop-color 'catego 247 247 247)
- (win-combobox 'combo 'pop_up 170 6 190 20000)
- (listbox-fill 'combo '("manzanas" "bananas" "plums" "oranges"))
- (win-checkbox 'che 'pop_up 10 100 200 20 "Otra Categoria")
- (prop-color 'che 247 247 247)
- (win-editline 'otracat 'pop_up 10 120 200 25)
- (prop-enabled 'otracat 0)
- (win-scrollbar 'scr 'pop_up 10 170 360 30 "" 'scrollbar-action)
- (prop-range 'scr 1 100)
- (prop-value 'scr 50)
- )
- (define (scrollbar-action)
- (win-label 'etiqueta 'pakho 10 60 80 30 "puto")
- )
- (define (agregarDic)
- ()
- )
- (define (sumar categoria)
- (set 'xapend (eval-string (concat "'(" (string categoria) " " (string (+ 1 (last (assoc categoria resultado)))) ")")))
- (remove (assoc categoria resultado) resultado)
- (set 'resultado (cons xapend resultado))
- (if (> 2 tamano) (_analizador (set 'a (recorredor a (- tamano 1)))))
- (_analizador (set 'a (rest a)))
- )
- (define (recorredor lista num)
- (cond
- (if (= 1 num) (rest a))
- (true (recorredor (rest a) (- 1 num)))
- )
- )
- ;; Comprueba que efectivamente este en la lista de aceptados
- (define (valido? elemento)
- (cond
- ((= (assoc elemento dic) nil) nil)
- (true true)
- )
- )
- ;;metodo que dice si es basura un elemento (de donde para como desde tu el yo nosotros ustedes ellos)
- (define (basura? elemento)
- (cond
- ((= (member (eval-string (concat "'(" (string elemento) " basura)")) dic) nil) nil)
- (true true)
- )
- )
- ;; metodo para leer el archivo y ponerlo en la lista 'a
- (define (Lector archivo)
- (set 'a '())
- (while (read-line archivo)
- (set 'a (append a (eval-string (concat "'(" (current-line) ")"))))
- )
- a
- )
- ;; metodo que lee y rerorna todos los elementos del diccionario.
- (define (cargaDic)
- (set 'diccionario (open "dic.txt" "read"))
- (read-line diccionario)
- (set 'Lectura (eval-string (concat "'(" (_cargaDic diccionario) ")")) )
- )
- (define (_cargaDic diccion)
- (if (read-line diccion) (concat (eval (concat "(" (current-line) ") " )) (_cargaDic diccion)) " ")
- )
- ;; metodo que saca la lista de todas las categorias y la guarda en categorias
- (define (listaCategorias)
- (set 'categorias '())
- (remove 'basura (set 'test (unique (map last Lectura))))
- (set 'resultado (_listaCategorias test))
- )
- (define(_listaCategorias lista)
- (cond
- ((empty? lista) '())
- (true (cons (append (list (first lista)) '(0)) (_listaCategorias (rest lista))))
- )
- )
- (define (ponedor lista)
- (cond
- ((empty? lista) '())
- (true (cons (cons (length (first lista)) (first lista)) (ponedor (rest lista))))
- )
- )
- (Inicio)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement