You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
letconsultar=awaitpreguntar('Ingrese "todo" o el "nombre de producto" según lo que quiera consultar: ')
65
+
if(consultar==='todo'){
66
+
console.log(fs.readFileSync('productos.txt','utf8').replaceAll('[','').replaceAll(']',''))// imprime toda la base de datos
67
+
}else{
68
+
letinfo=fs.readFileSync('productos.txt','utf8').replaceAll("\n",',').replace(/[\[\]\s]/g,'').split(',')// transforma el string de datos en un array con todos ellos separados
69
+
console.log(info)
70
+
if(info.includes(consultar)){
71
+
index=info.indexOf(consultar)// busca el index del nombre del producto
72
+
console.log(`${consultar}, ${info[++index]}, ${info[++index]}`)// al index del producto se le suma 1 para saber la cantidad vendida y 2 para el precio
73
+
}elseconsole.log('El producto no existe')
74
+
}
75
+
}
76
+
77
+
asyncfunctionactualizar(){
78
+
letproducto=awaitpreguntar('Ingrese el nombre del producto que desea actualizar: ')
79
+
letinfo=fs.readFileSync('productos.txt','utf8').replaceAll("\n",',').replace(/[\[\]\s]/g,'').split(',')// transforma el string de datos en un array con todos ellos separados
80
+
if(info.includes(producto)){
81
+
letupdate
82
+
do{
83
+
update=awaitpreguntar('Que desea actualizar precio o cantidad?'+"\n")
84
+
if(update==='precio'){
85
+
letprecio=awaitpreguntar('Ingrese el nuevo precio: ')
86
+
info.splice(info.indexOf(producto)+2,1,precio)// remplaza el precio viejo por el nuevo
87
+
}elseif(update==='cantidad'){
88
+
letcantidad=awaitpreguntar('Ingrese la nueva cantidad de ventas: ')
89
+
info.splice(info.indexOf(producto)+1,1,cantidad)// remplaza la cantidad vendida vieja por la nueva
90
+
}
91
+
}while(update!=='precio'&&update!=='cantidad')
92
+
console.log(info)
93
+
actualizarDatos(info)
94
+
console.log('Producto actualizado')
95
+
}elseconsole.log('El producto no existe')
96
+
}
97
+
98
+
asyncfunctionborrar(){
99
+
letproducto=awaitpreguntar('Ingrese el nombre del producto que quiere borrar: ')
100
+
letinfo=fs.readFileSync('productos.txt','utf8').replaceAll("\n",',').replace(/[\[\]\s]/g,'').split(',')// transforma el string de datos en un array con todos ellos separados
101
+
if(info.includes(producto)){
102
+
index=info.indexOf(producto)
103
+
info=info.slice(0,index).concat(info.slice(index+3))// al array de productos los separa en dos dejando fuera el producto que se desea eliminar y une las otras dos partes
104
+
actualizarDatos(info)
105
+
}elseconsole.log('El producto no existe')
106
+
}
107
+
108
+
asyncfunctioncalcular(){
109
+
letcalc=awaitpreguntar('Ingresa:'+'\n'+'total --> si queres calcular el total recaudado'+'\n'+'producto --> si queres calcular lo recaudado de un producto'+'\n'+'cantidad --> si queres calcular toda la cantidad vendida'+"\n")
110
+
letresult=0
111
+
letinfo=fs.readFileSync('productos.txt','utf8').replaceAll("\n",',').replace(/[\[\]\s]/g,'').split(',')// transforma el string de datos en un array con todos ellos separados
112
+
if(calc==='total'){
113
+
for(leti=4;i<info.length;i++){// empieza en 4 ya que los primero 3 valores son palabras y el cuarto es el nombre del primer producto
letnombre=archivo.match(/<nombre>([^<]+)<\/nombre>/)[1]// busca las etiquetas <nombre></nombre> y devuelve lo que haya en el medio
95
+
letedad=archivo.match(/<edad>([^<]+)<\/edad>/)[1]// busca las etiquetas <edad></edad> y devuelve lo que haya en el medio
96
+
letfecha=archivo.match(/<fechaDeNacimiento>([^<]+)<\/fechaDeNacimiento>/)[1]// busca las etiquetas <fechaDeNacimiento></fechaDeNacimiento> y devuelve lo que haya en el medio
97
+
letlenguajes=archivo.match(/<lenguajes>([\s\S]*?)<\/lenguajes>/)[1]// busca las etiquetas <lenguajes></lenguajes> y devuelve lo que haya en el medio
98
+
lenguajes=lenguajes.replace(/<\/?[^>]+>/g,'')// remplaza '<', '/', '>' y lo que haya entre medio de '<' y '>' junto con lo que esta entre '</' y '>'
99
+
lenguajes=lenguajes.match(/(?<![\w#+])([\w#+]+)(?![\w#+])/g)// busca todas las palabras que tengan un salto de line o espacio antes y despues
0 commit comments