Advertisement
Guest User

Codificador Python

a guest
Dec 11th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. ''
  2. Created on 21 nov. 2019
  3.  
  4. @author: Webon_5X
  5. '''
  6.  
  7. from jflap.Afd import Afd
  8. from sys import stderr
  9.  
  10. def es_valida(fichero, automata):
  11.  
  12. contador = 1
  13. lineas = fichero.readlines()
  14.  
  15. for linea in lineas:
  16. c = 0
  17. estadoActual = automata.getEstadoInicial()
  18.  
  19. while( c < (len(linea)-1)):
  20. entrada = linea[c] + linea[c+1]
  21. estadoSig = automata.estadoSiguiente(estadoActual, entrada)
  22.  
  23. if((estadoSig==None) and (not automata.esFinal(estadoActual))):
  24. print("Línea " + str(contador) + " la cadena '" + linea.rstrip('\n') + "' no es válida en el digito", c)
  25.  
  26. estadoActual=estadoSig
  27.  
  28. if((c+3 >= len(linea)) and (automata.esFinal(estadoActual))):
  29. print("Línea " + str(contador) + " la cadena '" + linea.rstrip('\n') + "' es válida")
  30.  
  31. c += 2
  32. linea = fichero.readline()
  33. contador += 1
  34. fichero.close()
  35.  
  36. def automata_afd():
  37.  
  38. ruta = r'C:\Users\Webon_5x\Desktop\ProyectoALFq.jff'
  39. try:
  40. automata = Afd(ruta)
  41.  
  42. except FileNotFoundError:
  43. print('La ruta es incorrecta',file=stderr)
  44.  
  45. except Exception as error:
  46. print('Ha habido problemas con el fichero:', error, file=stderr)
  47.  
  48. return automata;
  49.  
  50. def introduce_fichero():
  51.  
  52. fichero_entrada=""
  53. print("Inserte un fichero para validar sus cadenas:")
  54. while True:
  55. fichero_entrada = input()
  56.  
  57. if fichero_entrada == (''):
  58. print("Validacion cancelada, saliendo...")
  59. exit()
  60.  
  61. else:
  62.  
  63. try:
  64. print("Vamos a verificar que existe el fichero '" + fichero_entrada + "'")
  65. fichero_abrir = open(fichero_entrada);
  66. print("\nNo hay errores, empezamos a validarlo...\n");
  67. break
  68.  
  69. except FileNotFoundError:
  70. print("El nombre del fichero es incorrecto, no se encontró el fichero '" + fichero_entrada + "'", file=stderr);
  71. print("\nInserte de nuevo un fichero para validar")
  72.  
  73. return fichero_abrir;
  74.  
  75.  
  76. if __name__ == '__main__':
  77.  
  78. fichero = introduce_fichero()
  79. automata = automata_afd()
  80. es_valida(fichero, automata)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement