Programas varios

Programas varios

Notapor crazykenny el Lun Ene 05, 2009 12:34 pm

Hola y feliz año nuevo (aunque con "algo" de retraso, lo se...).
Vereis, el caso es que ultimamente he estado programando "alguna" que otra base de datos, y he pensado en colgar aqui el codigo del programa que me ha llevado mas "quebraderos" de cabeza, por decirlo asi, por no decir que por ahora es el unico programa que he hecho, pero da igual, el caso es que he pensado en "compartirlo" a ver que opinais, y, dicho sea de paso, si veis algun fallo, lo comentais aqui si no es molestia.
Por cierto, es un programa para llevar tiendas, mas o menos.
Bueno, aqui va:

Código: Seleccionar todo
Graphics 640,480,32,2
archivo_general$=CurrentDir$()+"\general"
If FileType(archivo_general$)=0
   CreateDir archivo_general$
EndIf
archivo_general_b$=archivo_general$+"\archivo_general.dat"
If FileType(archivo_general_b$)=1
   fileout=ReadFile(archivo_general_b$)
   categorias=ReadByte(fileout)
   If categorias=0
      Goto salto_01_b
   EndIf
   categorias=categorias-1
   Dim lista_categorias$(categorias,2)
   For t=0 To categorias
      For tt=0 To 2
         dat$=""
         dat$=ReadString(fileout)
         lista_categorias$(t,tt)=dat$
      Next
   Next
   categorias=categorias+1
   .salto_01_b
   subcategorias=ReadByte(fileout)
   If subcategorias=0
      Goto salto_02_b
   EndIf
   subcategorias=subcategorias-1
   Dim listado_subcategorias$(subcategorias,2)
   For t=0 To subcategorias
      For tt=0 To 2
         dat$=""
         dat$=ReadString(fileout)
         listado_subcategorias$(t,tt)=dat$
      Next
   Next
   subcategorias=subcategorias+1
   .salto_02_b
   productos=ReadByte(fileout)
   If productos=0
      Goto salto_03_b
   EndIf
   productos=productos-1
   Dim listado_productos$(productos,4)
   For t=0 To productos
      For tt=0 To 4
         dat$=""
         dat$=ReadString(fileout)
         listado_productos$(t,tt)=dat$
      Next
   Next
   productos=productos+1
   .salto_03_b
   beneficio_adicional=ReadByte(fileout)
   beneficio_adicional=beneficio_adicional-1
   If beneficio_adicional=0
      Goto salto_04_b
   EndIf
   Dim lista_beneficio_adicional$(beneficio_adicional)
   For t=0 To beneficio_adicional
      dat$=""
      dat$=ReadString(fileout)
      lista_beneficio_adicional$(t)=dat$
   Next
   beneficio_adicional=beneficio_adicional+1
   .salto_04_b
   gasto_adicional=ReadByte(fileout)
   gasto_adicional=gasto_adicional-1
   If gasto_adicional=0
      Goto salto_05_b
   EndIf
   Dim lista_gasto_adicional$(gasto_adicional)
   For t=0 To gasto_adicional
      dat$=""
      dat$=ReadString(fileout)
      lista_gasto_adicional$(t)=dat$
   Next
   gasto_adicional=gasto_adicional+1
   .salto_05_b
   CloseFile(fileout)
   Cls
   Locate 0,0
   Print "Datos cargados."
   Print "Pulse una tecla para seguir."
   WaitKey()
EndIf
.inicio
Cls
Locate 0,0
Print "¿Que desea hacer?."
Print "1) Crear categorias."
Print "2) Insertar subcategorias."
Print "3) Insertar productos."
Print "4) Añadir beneficios adicionales."
Print "5) Añadir gastos adicionales."
Print "6) Modificar imagen y/o precio a un producto."
Print "7) Proceder a ventas de productos."
Print "8) Salir."
opcion=0
opcion=Input()
If opcion=1
   Cls
   Locate 0,0
   Print "Inserte el nombre de la categoria:"
   dat$=""
   dat$=Input()
   If dat$=""
      Goto inicio
   EndIf
   If categorias=0
      Dim lista_categorias$(categorias,2)
      lista_categorias$(categorias,0)=dat$
      categorias=categorias+1
      Cls
      Locate 0,0
      Goto guardar_datos
   EndIf
   If categorias>0
      categorias=categorias-1
      For t=0 To categorias
         If dat$=lista_categorias$(t,0)
            Cls
            Locate 0,0
            categorias=categorias+1
            Print "Ya hay una categoria con el nombre indicado."
            Print "Pulse una tecla para volver al menu inicial."
            WaitKey()
            Goto inicio
         EndIf
      Next
      Dim lista_categorias_b$(categorias,2)
      For t=0 To categorias
         For tt=0 To 2
            dat_b$=""
            dat_b$=lista_categorias$(t,tt)
            lista_categorias_b$(t,tt)=dat_b$
         Next
      Next
      categorias=categorias+1
      Dim lista_categorias$(categorias,2)
      categorias=categorias-1
      For t=0 To categorias
         For tt=0 To 2
            dat_b$=""
            dat_b$=lista_categorias_b$(t,tt)
            lista_categorias$(t,tt)=dat_b$
         Next
      Next
      categorias=categorias+1
      lista_categorias$(categorias,0)=dat$
      categorias=categorias+1
      Cls
      Locate 0,0
      Goto guardar_datos
   EndIf
EndIf
If opcion=2
   If categorias=0
      Cls
      Locate 0,0
      Print "No ha insertado categorias."
      Print "Debe insertar almenos una para"
      Print "poder crear subcategorias."
      Print "Pulse una tecla para volver al menu inicial."
      WaitKey()
      Goto inicio
   EndIf
   Cls
   Locate 0,0
   Print "¿A que categoria pertenece esta subcategoria?"
   dat$=""
   dat$=Input()
   If dat$=""
      Goto inicio
   EndIf
   categorias=categorias-1
   For t=0 To categorias
      If dat$=lista_categorias$(t,0)
         Cls
         Locate 0,0
         Print "Inserte el nombre de la subcategoria:"
         dat_b$=""
         dat_b$=Input()
         If dat_b$=""
            categorias=categorias+1
            Goto inicio
         EndIf
         If subcategorias=0
            Dim listado_subcategorias$(subcategorias,2)
            listado_subcategorias$(subcategorias,0)=dat_b$
            listado_subcategorias$(subcategorias,1)=t
            opcion=0
            opcion=lista_categorias$(t,2)
            opcion=opcion+1
            lista_categorias$(t,2)=opcion
            subcategorias=subcategorias+1
            categorias=categorias+1
            Goto guardar_datos
         EndIf
         If subcategorias>0
            subcategorias=subcategorias-1
            For tt=0 To subcategorias
               If listado_subcategorias$(subcategorias,0)=dat_b$
                  If listado_subcategorias$(subcategorias,1)=t
                     Cls
                     Locate 0,0
                     Print "Ya hay una subcategoria con el"
                     Print "nombre insertado y con la misma"
                     Print "categoria principal."
                     Print "Pulse una tecla para volver al"
                     Print "menu inicial."
                     subcategorias=subcategorias+1
                     categorias=categorias+1
                     WaitKey()
                     Goto inicio
                  EndIf
               EndIf
            Next
            opcion=0
            opcion=lista_categorias$(t,2)
            opcion=opcion+1
            lista_categorias$(t,2)=opcion
            Dim listado_subcategorias_b$(subcategorias,2)
            For tt=0 To subcategorias
               For ttt=0 To 2
                  dat_c$=""
                  dat_c$=listado_subcategorias$(tt,ttt)
                  listado_subcategorias_b$(tt,ttt)=dat_c$
               Next
            Next
            subcategorias=subcategorias+1
            Dim listado_subcategorias$(subcategorias,2)
            subcategorias=subcategorias-1
            For tt=0 To subcategorias
               For ttt=0 To 2
                  dat_c$=""
                  dat_c$=listado_subcategorias_b$(tt,ttt)
                  listado_subcategorias$(tt,ttt)=dat_c$
               Next
            Next
            subcategorias=subcategorias+1
            listado_subcategorias$(subcategorias,0)=dat_b$
            listado_subcategorias$(subcategorias,1)=t
            subcategorias=subcategorias+1
            Cls
            Locate 0,0
            categorias=categorias+1
            Goto guardar_datos
         EndIf
      EndIf
   Next
   Cls
   Locate 0,0
   categorias=categorias+1
   Print "No se han encontrado los"
   Print "datos que ha indicado."
   Print "Pulse una tecla para volver."
   WaitKey()
   Goto inicio
EndIf
If opcion=3
   If categorias=0
      Cls
      Locate 0,0
      Print "No ha insertado categorias."
      Print "Debe insertar almenos una para"
      Print "poder crear subcategorias."
      Print "Pulse una tecla para volver al menu inicial."
      WaitKey()
      Goto inicio
   EndIf
   If subcategorias=0
      Cls
      Locate 0,0
      Print "No ha insertado subcategorias."
      Print "Debe insertar almenos una para"
      Print "poder crear subcategorias."
      Print "Pulse una tecla para volver al menu inicial."
      WaitKey()
      Goto inicio
   EndIf
   Dim pruebas_productos$(4)
   Cls
   Locate 0,0
   Print "Inserte la categoria principal"
   Print "del producto:"
   dat$=""
   dat$=Input()
   If dat$=""
      Goto inicio
   EndIf
   categorias=categorias-1
   For t=0 To categorias
      If dat$=lista_categorias$(t,0)
         pruebas_productos$(0)=t
         Cls
         Locate 0,0
         Print "Inserte el nombre de la subcategoria:"
         dat_b$=""
         dat_b$=Input()
         If dat_b$=""
            Goto inicio
         EndIf
         subcategorias=subcategorias-1
         For tt=0 To subcategorias
            If dat_b$=listado_subcategorias$(tt,0)
               dat_xxx=listado_subcategorias$(tt,1)
               If dat_xxx=t
                  pruebas_productos$(1)=tt
                  Cls
                  Locate 0,0
                  Print "Inserte el nombre del producto:"
                  dat$=""
                  dat$=Input()
                  If dat$=""
                     subcategorias=subcategorias+1
                     categorias=categorias+1
                     Goto inicio
                  EndIf
                  pruebas_productos$(2)=dat$
                  Cls
                  Locate 0,0
                  Print "Inserte el precio del producto:"
                  opciones#=0
                  opciones#=Input()
                  If opciones#<0.01
                     subcategorias=subcategorias+1
                     categorias=categorias+1
                     Goto inicio
                  EndIf
                  pruebas_productos$(3)=opciones#
                  Cls
                  Locate 0,0
                  Print "Inserte el nombre de la imagen"
                  Print "del producto:"
                  Print "(El programa añadira automaticamente"
                  Print " la extension .bmp al nombre que"
                  Print " usted inserte, por lo que es requerido"
                  Print " que la imagen tenga extension .bmp"
                  dat$=""
                  dat$=Input()
                  If dat$=""
                     subcategorias=subcategorias+1
                     categorias=categorias+1
                     Goto inicio
                  EndIf
                  dat_b$=dat$+".bmp"
                  pruebas_productos$(4)=dat_b$
                  Cls
                  Locate 0,0
                  If productos=0
                     Dim listado_productos$(productos,4)
                     For tx=0 To 4
                        dat_x$=""
                        dat_x$=pruebas_productos$(tx)
                        listado_productos$(productos,tx)=dat_x$
                     Next
                     opcion=listado_subcategorias$(tt,2)
                     opcion=opcion+1
                     listado_subcategorias$(tt,2)=opcion
                     productos=productos+1
                     categorias=categorias+1
                     subcategorias=subcategorias+1
                     Goto guardar_datos
                  EndIf
                  If productos>0
                     productos=productos-1
                     dat$=pruebas_productos$(0)
                     dat_b$=pruebas_productos$(1)
                     dat_c$=pruebas_productos$(2)
                     For tx=0 To productos
                        If listado_productos$(tx,0)=dat$
                           If listado_productos$(tx,1)=dat_b$
                              If listado_productos$(tx,2)=dat_c$
                                 Cls
                                 Locate 0,0
                                 productos=productos+1
                                 subcategorias=subcategorias+1
                                 categorias=categorias+1
                                 Cls
                                 Locate 0,0
                                 Print "Ya hay un producto dentro"
                                 Print "de la categoria y de la"
                                 Print "subcategoria indicada."
                                 Print "Pulse una tecla para volver"
                                 Print "al menu inicial."
                                 WaitKey()
                                 Goto inicio
                              EndIf
                           EndIf
                        EndIf
                     Next
                     Dim listado_productos_b$(productos,4)
                     For tx=0 To productos
                        For ty=0 To 4
                           dat$=""
                           dat$=listado_productos$(tx,ty)
                           listado_productos_b$(tx,ty)=dat$
                        Next
                     Next
                     productos=productos+1
                     Dim listado_productos$(productos,4)
                     productos=productos-1
                     For tx=0 To productos
                        For ty=0 To 4
                           dat$=""
                           dat$=listado_productos_b$(tx,ty)
                           listado_productos$(tx,ty)=dat$
                        Next
                     Next
                     productos=productos+1
                     For tx=0 To 4
                        dat_x$=""
                        dat_x$=pruebas_productos$(tx)
                        listado_productos$(productos,tx)=dat_x$
                     Next
                     opcion=listado_subcategorias$(tt,2)
                     opcion=opcion+1
                     listado_subcategorias$(tt,2)=opcion
                     productos=productos+1
                     categorias=categorias+1
                     subcategorias=subcategorias+1
                     Goto guardar_datos
                  EndIf
               EndIf
            EndIf
         Next
         Cls
         Locate 0,0
         Print "No se encuentra la subcategoria indicada."
         Print "Pulse una tecla para volver al menu inicial."
         subcategorias=subcategorias+1
         categorias=categorias+1
         WaitKey()
         Goto inicio
      EndIf
   Next
   Cls
   Locate 0,0
   categorias=categorias+1
   Print "No se encuentra la categoria incicada."
   Print "Pulse una tecla para volver al menu inicial."
   WaitKey()
   Goto inicio
EndIf
If opcion=4
   Cls
   Locate 0,0
   Print "Inserte el beneficio adicional:"
   dat$=""
   dat$=Input()
   If dat$=""
      Goto inicio
   EndIf
   If beneficio_adicional=0
      Dim lista_beneficio_adicional$(beneficio_adicional)
      lista_beneficio_adicional$(beneficio_adicional)=dat$
      beneficio_adicional=beneficio_adicional+1
      Goto guardar_datos
   EndIf
   If beneficio_adicional>0
      beneficio_adicional=beneficio_adicional-1
      For t=0 To beneficio_adicional
         If dat$=lista_beneficio_adicional$(t)
            Cls
            Locate 0,0
            beneficio_adicional=beneficio_adicional+1
            Print "Ya hay un beneficio adicional con el"
            Print "nombre insertado."
            Print "Pulse una tecla para volver al menu"
            Print "inicial."
            WaitKey()
            Goto inicio
         EndIf
      Next
      Dim lista_beneficio_adicional_b$(beneficio_adicional)
      For t=0 To beneficio_adicional
         dat_b$=""
         dat_b$=lista_beneficio_adicional$(t)
         lista_beneficio_adicional_b$(t)=dat_b$
      Next
      beneficio_adicional=beneficio_adicional+1
      Dim lista_beneficio_adicional$(beneficio_adicional)
      beneficio_adicional=beneficio_adicional-1
      For t=0 To beneficio_adicional
         dat_b$=""
         dat_b$=lista_beneficio_adicional_b$(t)
         lista_beneficio_adicional$(t)=dat_b$
      Next
      beneficio_adicional=beneficio_adicional+1
      Goto guardar_datos
   EndIf
EndIf
If opcion=5
   Cls
   Locate 0,0
   Print "Inserte el beneficio adicional:"
   dat$=""
   dat$=Input()
   If dat$=""
      Goto inicio
   EndIf
   If gasto_adicional=0
      Dim lista_gasto_adicional$(gasto_adicional)
      lista_gasto_adicional$(gasto_adicional)=dat$
      gasto_adicional=gasto_adicional+1
      Goto guardar_datos
   EndIf
   If gasto_adicional>0
      gasto_adicional=gasto_adicional-1
      For t=0 To gasto_adicional
         If dat$=lista_gasto_adicional$(t)
            Cls
            Locate 0,0
            gasto_adicional=gasto_adicional+1
            Print "Ya hay un gasto adicional con el"
            Print "nombre insertado."
            Print "Pulse una tecla para volver al menu"
            Print "inicial."
            WaitKey()
            Goto inicio
         EndIf
      Next
      Dim lista_gasto_adicional_b$(gasto_adicional)
      For t=0 To gasto_adicional
         dat_b$=""
         dat_b$=lista_gasto_adicional$(t)
         lista_gasto_adicional_b$(t)=dat_b$
      Next
      gasto_adicional=gasto_adicional+1
      Dim lista_gasto_adicional$(gasto_adicional)
      gasto_adicional=gasto_adicional-1
      For t=0 To gasto_adicional
         dat_b$=""
         dat_b$=lista_gasto_adicional_b$(t)
         lista_gasto_adicional$(t)=dat_b$
      Next
      gasto_adicional=gasto_adicional+1
      Goto guardar_datos
   EndIf
EndIf
If opcion=6
   If categorias=0
      Cls
      Locate 0,0
      Print "No ha insertado categorias."
      Print "Debe insertar almenos una para"
      Print "poder crear subcategorias."
      Print "Pulse una tecla para volver al menu inicial."
      WaitKey()
      Goto inicio
   EndIf
   If subcategorias=0
      Cls
      Locate 0,0
      Print "No ha insertado subcategorias."
      Print "Debe insertar almenos una para"
      Print "poder crear subcategorias."
      Print "Pulse una tecla para volver al menu inicial."
      WaitKey()
      Goto inicio
   EndIf
   Dim pruebas_productos$(4)
   Cls
   Locate 0,0
   Print "Inserte la categoria principal"
   Print "del producto:"
   dat$=""
   dat$=Input()
   If dat$=""
      Goto inicio
   EndIf
   categorias=categorias-1
   For t=0 To categorias
      If dat$=lista_categorias$(t,0)
         Cls
         Locate 0,0
         Print "Inserte el nombre de la subcategoria:"
         dat_b$=""
         dat_b$=Input()
         If dat_b$=""
            Goto inicio
         EndIf
         subcategorias=subcategorias-1
         For tt=0 To subcategorias
            If dat_b$=listado_subcategorias$(tt,0)
               dat_xxx=listado_subcategorias$(tt,1)
               If dat_xxx=t
                  pruebas_productos$(1)=tt
                  Cls
                  Locate 0,0
                  Print "Inserte el nombre del producto:"
                  dat$=""
                  dat$=Input()
                  If dat$=""
                     subcategorias=subcategorias+1
                     categorias=categorias+1
                     Goto inicio
                  EndIf
                  productos=productos-1
                  For t=0 To productos
                     If dat$=listado_productos$(t,2)
                        Cls
                        Locate 0,0
                        Print "Inserte el precio del producto:"
                        opciones#=0
                        opciones#=Input()
                        If opciones#<0.01
                           subcategorias=subcategorias+1
                           categorias=categorias+1
                           Goto inicio
                        EndIf
                        listado_productos$(t,3)=opciones#
                        Cls
                        Locate 0,0
                        Print "Inserte el nombre de la imagen"
                        Print "del producto:"
                        Print "(El programa añadira automaticamente"
                        Print " la extension .bmp al nombre que"
                        Print " usted inserte, por lo que es requerido"
                        Print " que la imagen tenga extension .bmp"
                        dat$=""
                        dat$=Input()
                        If dat$=""
                           subcategorias=subcategorias+1
                           categorias=categorias+1
                           Goto inicio
                        EndIf
                        dat_b$=dat$+".bmp"
                        productos=productos+1
                        subcategorias=subcategorias+1
                        categorias=categorias+1
                        listado_productos$(t,4)=dat_b$
                        Goto guardar_datos
                     EndIf
                  Next
                  Cls
                  Locate 0,0
                  Print "No se encuentra el producto indicado."
                  Print "Pulse una tecla para volver."
                  productos=productos+1
                  subcategorias=subcategorias+1
                  categorias=categorias+1
                  WaitKey()
                  Goto inicio
               EndIf
            EndIf
         Next
         Cls
         Locate 0,0
         Print "No se encuentra la subcategoria indicada."
         Print "Pulse una tecla para volver al menu inicial."
         subcategorias=subcategorias+1
         categorias=categorias+1
         WaitKey()
         Goto inicio
      EndIf
   Next
   Cls
   Locate 0,0
   categorias=categorias+1
   Print "No se encuentra la categoria incicada."
   Print "Pulse una tecla para volver al menu inicial."
   WaitKey()
   Goto inicio
EndIf
If opcion=7
   Goto configuracion
EndIf
If opcion=8
   .salida_programa
   Cls
   Locate 0,0
   Print "¿Desea salir del programa?(S/N)"
   dat$=""
   dat$=Input()
   If dat$="n" Or dat$="N"
      Goto inicio
   EndIf
   If dat$="S" Or dat$="s"
      End
   EndIf
   Goto salida_programa
EndIf
Goto inicio
.guardar_datos
fileout=WriteFile(archivo_general_b$)
WriteByte(fileout,categorias)
If categorias=0
   Goto salto_01
EndIf
categorias=categorias-1
For t=0 To categorias
   For tt=0 To 2
      dat$=""
      dat$=lista_categorias$(t,tt)
      WriteString(fileout,dat$)
   Next
Next
categorias=categorias+1
.salto_01
WriteByte(fileout,subcategorias)
If subcategorias=0
   Goto salto_02
EndIf
subcategorias=subcategorias-1
For t=0 To subcategorias
   For tt=0 To 2
      dat$=""
      dat$=listado_subcategorias$(t,tt)
      WriteString(fileout,dat$)
   Next
Next
subcategorias=subcategorias+1
.salto_02
WriteByte(fileout,productos)
If productos=0
   Goto salto_03
EndIf
productos=productos-1
Cls
Locate 0,0
For t=0 To productos
   For tt=0 To 4
      dat$=""
      dat$=listado_productos$(t,tt)
      WriteString(fileout,dat$)
   Next
Next
productos=productos+1
.salto_03
WriteByte(fileout,beneficio_adicional)
If beneficio_adicional=0
   Goto salto_04
EndIf
beneficio_adicional=beneficio_adicional-1
For t=0 To beneficio_adicional
   dat$=""
   dat$=lista_beneficio_adicional$(t)
   WriteString(fileout,dat$)
Next
beneficio_adicional=beneficio_adicional+1
.salto_04
WriteByte(fileout,gasto_adicional)
If gasto_adicional=0
   Goto salto_05
EndIf
gasto_adicional=gasto_adicional-1
For t=0 To gasto_adicional
   dat$=""
   dat$=lista_gasto_adicional$(t)
   WriteString(fileout,dat$)
Next
gasto_adicional=gasto_adicional+1
.salto_05
CloseFile(fileout)
Cls
Locate 0,0
Print "Datos guardados."
Print "Pulse una tecla para volver"
Print "al menu inicial."
WaitKey()
Goto inicio
.configuracion
Cls
Locate 0,0
Print "Inserte el archivo a guardar los datos:"
dat$=""
dat$=Input()
If dat$=""
   Cls
   Locate 0,0
   Print "No ha insertado ningun nombre de archivo."
   Print "Pulse una tecla para volver."
   WaitKey()
   Goto inicio
EndIf
categorias=categorias-1
subcategorias=subcategorias-1
productos=productos-1
gasto_adicional=gasto_adicional-1
beneficio_adicional=beneficio_adicional-1
datos_variables_01$=CurrentDir()+"\variable"
If FileType(datos_variables_01$)=0
   CreateDir datos_variables_01$
EndIf
mis_datos_productos$=datos_variables_01$+"\disponibilidad.dat"
If datos_variables_02$=mis_datos_productos$
   Cls
   Locate 0,0
   Print "Ha insertado un nombre de archivo que esta"
   Print "reservado para el programa."
   Print "Pulse una tecla para volver al menu inicial."
   categorias=categorias+1
   subcategorias=subcategorias+1
   productos=productos+1
   gasto_adicional=gasto_adicional+1
   beneficio_adicional=beneficio_adicional+1
   WaitKey()
   Goto inicio
EndIf
Dim disponibilad_productos(productos)
Dim mi_beneficio_adicional#(beneficio_adicional)
Dim mi_gasto_adicional#(gasto_adicional)
Dim precio_compra_venta#(productos,1)
datos_variables_02$=datos_variables_01$+"\"+dat$
If FileType(mis_datos_productos)=1
   fileout=ReadFile(mis_datos_productos$)
   productos_x=ReadByte(fileout)
   For t=0 To productos_x
      opcion=0
      opcion=ReadByte(fileout)
      disponibilad_productos(t)=opcion
   Next
   CloseFile(fileout)
EndIf
If FileType(datos_variables_02$)=1
   fileout=ReadFile(datos_variables_02$)
   productos_z=ReadByte(fileout)
   For t=0 To productos_z
      For tt=0 To 1
         opcion_xz#=0
         opcion_xz#=ReadFloat(fileout)
         precio_compra_venta#(t,tt)=opcion_xz#
      Next
   Next
   gasto_adicional_z#=ReadFloat(fileout)
   If gasto_adicional_z#=-1
      Goto mi10
   EndIf
   For t=0 To gasto_adicional_z#
      opcion_xz#=0
      opcion_xz#=ReadFloat(fileout)
      mi_gasto_adicional#(t)=opcion_xz#
   Next
   .mi10
   beneficio_adicional_z#=ReadFloat(fileout)
   If beneficio_adicional_z#=-1
      Goto mi11
   EndIf
   For t=0 To beneficio_adicional_z#
      opcion_xz#=0
      opcion_xz#=ReadFloat(fileout)
      mi_beneficio_adicional#(t)=opcion_xz#
   Next
   .mi11
   mycompras=ReadByte(fileout)
   If mycompras=0
      Goto zona_compras_y
   EndIf
   mycompras=mycompras-1
   Dim lista_compra#(mycompras,2)
   For t=0 To mycompras
      For tt=0 To 2
         opciones#=0
         opciones#=ReadFloat(fileout)
         lista_compra#(t,tt)=opciones#
      Next
   Next
   mycompras=mycompras+1
   .zona_compras_y
   myventas=ReadByte(fileout)
   If myventas=0
      Goto zona_ventas_y
   EndIf
   myventas=myventas-1
   Dim lista_ventas#(myventas,2)
   For t=0 To myventas
      For tt=0 To 2
         opciones#=0
         opciones#=ReadFloat(fileout)
         lista_ventas#(t,tt)=opciones#
      Next
   Next
   myventas=myventas+1
   .zona_ventas_y
   CloseFile(fileout)
EndIf
.configuracion_b
Cls
Locate 0,0
Print "¿Que desea hacer?"
Print "1) Comprar productos."
Print "2) Vender productos."
Print "3) Insertar dinero a gastos adicionales."
Print "4) Insertar dinero a beneficios adicionales."
Print "5) Ver balance de cuentas."
Print "6) Ver precio de stock."
Print "7) Ver productos comprados y vendidos
Print "8) Volver al menu inicial."
opcion=0
opcion=Input()
If opcion=1
   Cls
   Locate 0,0
   Print "Inserte la categoria del producto:"
   dat$=""
   dat$=Input()
   For tx=0 To categorias
      If dat$=lista_categorias$(tx,0)
         Cls
         Locate 0,0
         Print "Inserte la subcategoria del producto:"
         dat_b$=""
         dat_b$=Input()
         For ty=0 To subcategorias
            If dat_b$=listado_subcategorias$(ty,0)
               If listado_subcategorias$(ty,1)=tx
                  Cls
                  Locate 0,0
                  Print "Inserte el nombre del producto:"
                  dat$=""
                  dat$=Input()
                  If dat$=""
                     Goto configuracion_b
                  EndIf
                  For tz=0 To productos
                     If listado_productos$(tz,0)=tx
                        If listado_productos$(tz,1)=ty
                           If dat$=listado_productos$(tz,2)
                              Cls
                              Locate 0,0
                              Print "¿Cuantas copias del producto quiere comprar?"
                              Print "(Inserte 0 o menos para volver al menu)"
                              opcion=0
                              opcion=Input()
                              If opcion<1
                                 Goto configuracion_b
                              EndIf
                              miopcionxx=0
                              miopcionxx=opcion
                              miopcionyy=0
                              miopcionyy=disponibilad_productos(tz)
                              miopcionzz=0
                              miopcionzz=miopcionxx+miopcionyy
                              Cls
                              Locate 0,0
                              Print "Inserte el precio de compra del producto:"
                              Print "(Inserte menos de 0 para volver al menu)"
                              opciones#=0
                              opciones#=Input()
                              If opciones#<0
                                 Goto configuracion_b
                              EndIf
                              If mycompras=0
                                 Dim lista_compra#(mycompras,2)
                                 lista_compra#(mycompras,0)=tz
                                 lista_compra#(mycompras,1)=opciones#
                                 lista_compra#(mycompras,2)=opcion
                                 mycompras=mycompras+1
                                 Goto zona_compras
                              EndIf
                              If mycompras>0
                                 mycompras=mycompras-1
                                 Dim lista_compra_b#(mycompras,2)
                                 For t=0 To mycompras
                                    For tt=0 To 2
                                       opcionesxxx#=0
                                       opcionesxxx#=lista_compra#(t,tt)
                                       lista_compra_b#(t,tt)=opcionesxxx#
                                    Next
                                 Next
                                 mycompras=mycompras+1
                                 Dim lista_compra#(mycompras,2)
                                 mycompras=mycompras-1
                                 For t=0 To mycompras
                                    For tt=0 To 2
                                       opcionesxxx#=0
                                       opcionesxxx#=lista_compra_b#(t,tt)
                                       lista_compra#(t,tt)=opcionesxxx#
                                    Next
                                 Next
                                 mycompras=mycompras+1
                                 lista_compra#(mycompras,0)=tz
                                 lista_compra#(mycompras,1)=opciones#
                                 lista_compra#(mycompras,2)=opcion
                                 mycompras=mycompras+1
                              EndIf
                              .zona_compras
                              opcionesx#=0
                              opcionesx#=precio_compra_venta#(tz,0)
                              opcionesy#=opciones#+opcionesx#
                              precio_compra_venta#(tz,0)=opcionesy#
                              disponibilad_productos(tz)=miopcionzz
                              Goto savedata
                           EndIf
                        EndIf
                     EndIf
                  Next
               EndIf
            EndIf
         Next
      EndIf
   Next
   Cls
   Locate 0,0
   Print "No se encontro el producto con los"
   Print "datos insertados."
   Print "Pulse una tecla para volver al"
   Print "menu inicial."
   WaitKey()
   Goto configuracion_b
EndIf
If opcion=2
   Cls
   Locate 0,0
   Print "Inserte la categoria del producto:"
   dat$=""
   dat$=Input()
   For tx=0 To categorias
      If dat$=lista_categorias$(tx,0)
         Cls
         Locate 0,0
         Print "Inserte la subcategoria del producto:"
         dat_b$=""
         dat_b$=Input()
         For ty=0 To subcategorias
            If dat_b$=listado_subcategorias$(ty,0)
               If listado_subcategorias$(ty,1)=tx
                  Cls
                  Locate 0,0
                  Print "Inserte el nombre del producto:"
                  dat$=""
                  dat$=Input()
                  If dat$=""
                     Goto configuracion_b
                  EndIf
                  For tz=0 To productos
                     If listado_productos$(tz,0)=tx
                        If listado_productos$(tz,1)=ty
                           If dat$=listado_productos$(tz,2)
                              Cls
                              Locate 0,0
                              miopcionyy=disponibilad_productos(tz)
                              If miopcionyy=0
                                 Cls
                                 Locate 0,0
                                 Print "No quedan copias del producto indicado."
                                 Print "Pulse una tecla para volver al menu anterior."
                                 WaitKey()
                                 Goto configuracion_b
                              EndIf
                              Print "¿Cuantas copias del producto quiere vender?"
                              Print "(Inserte 0 o menos para volver al menu)"
                              opcion=0
                              opcion=Input()
                              If opcion<1
                                 Goto configuracion_b
                              EndIf
                              miopcionxx=0
                              miopcionxx=opcion
                              miopcionyy=0
                              miopcionyy=disponibilad_productos(tz)
                              If miopcionxx>miopcionyy
                                 Cls
                                 Locate 0,0
                                 Print "Ha intentado vender " +  miopcionxx + " copias cuando solo hay" + miopcionyy + "."
                                 Print "Pulse una tecla para volver al menu inicial."
                                 WaitKey()
                                 Goto configuracion_b
                              EndIf
                              miopcionzz=0
                              miopcionzz=miopcionyy-miopcionxx
                              Cls
                              Locate 0,0
                              Print "Inserte el precio de venta del producto:"
                              Print "(El precio de venta de cada copia es de " + listado_productos$(tz,3) + " euros)"
                              Print "(Inserte menos de 0 para volver al menu)"
                              opciones#=0
                              opciones#=Input()
                              If opciones#<0
                                 Goto configuracion_b
                              EndIf
                              If myventas=0
                                 Dim lista_ventas#(myventas,2)
                                 lista_ventas#(myventas,0)=tz
                                 lista_ventas#(myventas,1)=opciones#
                                 lista_ventas#(myventas,2)=opcion
                                 myventas=myventas+1
                                 Goto zona_ventas
                              EndIf
                              If myventas>0
                                 myventas=myventas-1
                                 Dim lista_ventas_b#(myventas,2)
                                 For t=0 To myventas
                                    For tt=0 To 2
                                       opcionesxxx#=0
                                       opcionesxxx#=lista_ventas#(t,tt)
                                       lista_ventas_b#(t,tt)=opcionesxxx#
                                    Next
                                 Next
                                 myventas=myventas+1
                                 Dim lista_ventas#(myventas,2)
                                 myventas=myventas-1
                                 For t=0 To myventas
                                    For tt=0 To 2
                                       opcionesxxx#=0
                                       opcionesxxx#=lista_ventas_b#(t,tt)
                                       lista_ventas#(t,tt)=opcionesxxx#
                                    Next
                                 Next
                                 myventas=myventas+1
                                 lista_ventas#(myventas,0)=tz
                                 lista_ventas#(myventas,1)=opciones#
                                 lista_ventas#(myventas,2)=opcion
                                 myventas=myventas+1
                              EndIf
                              .zona_ventas
                              opcionesx#=0
                              opcionesx#=precio_compra_venta#(tz,1)
                              opcionesy#=opciones#+opcionesx#
                              precio_compra_venta#(tz,1)=opcionesy#
                              disponibilad_productos(tz)=miopcionzz
                              Goto savedata
                           EndIf
                        EndIf
                     EndIf
                  Next
               EndIf
            EndIf
         Next
      EndIf
   Next
   Cls
   Locate 0,0
   Print "No se encontro el producto con los"
   Print "datos insertados."
   Print "Pulse una tecla para volver al"
   Print "menu inicial."
   WaitKey()
   Goto configuracion_b
EndIf
If opcion=3
   Cls
   Locate 0,0
   Print "Inserte el gasto adicional:"
   Print "(No inserte nada para volver"
   Print "al menu)"
   dat$=""
   dat$=Input()
   If dat$=""
      Goto configuracion_b
   EndIf
   If gasto_adicional=-1
      Cls
      Locate 0,0
      Print "No hay gastos adicionales."
      Print "Pulse una tecla para volver."
      WaitKey()
      Goto configuracion_b
   EndIf
   For t=0 To gasto_adicional
      If dat$=lista_gasto_adicional$(t)
         Cls
         Locate 0,0
         Print "Indique cuanto quiere insertar en el"
         Print "gasto adicional:"
         Print "(Inserte menos de 0.01 para volver"
         Print " al menu anterior)"
         opciones#=0
         opciones#=Input()
         If opciones#<0.01
            Goto configuracion_b
         EndIf
         ocpionesx#=mi_gasto_adicional#(t)
         opcionesy#=opcionesx#+opciones#
         mi_gasto_adicional#(t)=opcionesy#
         Goto savedata
      EndIf
   Next
   Cls
   Locate 0,0
   Print "No se ha encontrado el gasto adicional."
   Print "Pulse una tecla para volver al menu anterior."
   WaitKey()
   Goto configuracion_b
EndIf
If opcion=4
   Cls
   Locate 0,0
   Print "Inserte el beneficio adicional:"
   Print "(No inserte nada para volver"
   Print "al menu)"
   dat$=""
   dat$=Input()
   If dat$=""
      Goto configuracion_b
   EndIf
   If beneficio_adicional-1
      Cls
      Locate 0,0
      Print "No hay beneficios adicionales."
      Print "Pulse una tecla."
      WaitKey()
      Goto configuracion_b
   EndIf
   For t=0 To beneficio_adicional
      If dat$=lista_gasto_adicional$(t)
         Cls
         Locate 0,0
         Print "Indique cuanto quiere insertar en el"
         Print "gasto adicional:"
         Print "(Inserte menos de 0.01 para volver"
         Print " al menu anterior)"
         opciones#=0
         opciones#=Input()
         If opciones#<0.01
            Goto configuracion_b
         EndIf
         ocpionesx#=mi_beneficio_adicional#(t)
         opcionesy#=opcionesx#+opciones#
         mi_beneficio_adicional#(t)=opcionesy#
         Goto savedata
      EndIf
   Next
   Cls
   Locate 0,0
   Print "No se ha encontrado el gasto adicional."
   Print "Pulse una tecla para volver al menu anterior."
   WaitKey()
   Goto configuracion_b
EndIf
If opcion=5
   opcionesa#=0
   opcionesb#=0
   opciones#=0
   For t=0 To beneficio_adicional
      opcionesa#=opcionesa#+mi_beneficio_adicional#(t)
   Next
   For tz=0 To productos
      opcionesa#=opcionesa#+precio_compra_venta#(tz,1)
   Next
   For tz=0 To productos
      opcionesb#=opcionesb#+precio_compra_venta#(tz,0)
   Next
   For t=0 To beneficio_adicional
      opcionesb#=opcionesb#+mi_gasto_adicional#(t)
   Next
   opciones#=opcionesa#-opcionesb#
   Cls
   Locate 0,0
   Print "Dinero gastado: " + opcionesb#
   Print "Dinero conseguido: " + opcionesa#
   Print "Balance de cuentas:" + opciones#
   Print ""
   Print "Pulse una tecla para volver."
   WaitKey()
   Goto configuracion_b
EndIf
If opcion=6
   .busqueda_stock
   Cls
   Locate 0,0
   Print "¿Como desea ver el precio del stock?"
   Print "1) Ver el precio de todo el stock."
   Print "2) Ver el precio de stock de una categoria."
   Print "3) Volver."
   If opcion=3
      Goto configuracion_b
   EndIf
   opion=0
   opcion=Input()
   If opcion=1
      opciones3#=0
      For t=0 To productos
         opciones#=listado_productos$(t,3)
         opciones1#=disponibilad_productos(productos)
         opciones2#=opciones1#*opciones#
         opciones3#=opciones2#+opciones3#
      Next
      Cls
      Locate 0,0
      Print "Precio total de todo el stock:"
      Print opciones3#
      Print ""
      Print "Pulse una tecla para volver al menu inicial."
      WaitKey()
      Goto busqueda_stock
   EndIf
   If opcion=3
      Goto configuracion_b
   EndIf
   Goto busqueda_stock
EndIf
If opcion=7
   .listas_compradas_vendidas
   Cls
   Locate 0,0
   Print "¿Que desea hacer?"
   Print "1) Ver listado de productos comprados de"
   Print "   una categoria."
   Print "2) Ver listado de productos vendidos de"
   Print "   una categoria."
   Print "3) Ver todos los productos comprados y"
   Print "   vendidos."
   Print "4) Volver al menu anterior."
   opcion=0
   opcion=Input()
   If opcion=1
      If mycompras=0
         Cls
         Locate 0,0
         Print "No se ha hecho ninguna compra."
         Print "Pulse una tecla para volver al menu."
         WaitKey()
         Goto listas_compradas_vendidas
      EndIf
      Cls
      Locate 0,0
      Print "Inserte la categoria en cuestion:"
      dat$=""
      dat$=Input()
      If dat$=""
         Cls
         Locate 0,0
         Print "No ha insertado ninguna categoria."
         Print "Pulse una tecla para volver al menu anterior."
         WaitKey()
         Goto listas_compradas_vendidas
      EndIf
      For t=0 To categorias
         If dat$=lista_categorias$(t,0)
            mycompras=mycompras-1
            opciones#=0
            opcion=0
            For tt=0 To mycompras
               opcionm=0
               opcionm=lista_compra#(mycompras,0)
               If listado_productos$(opcion,0)=t
                  opciones#=opciones#+lista_compra#(tt,1)
                  opcion=opcion+lista_compra#(tt,2)
               EndIf
            Next
            Cls
            Locate 0,0
            Print "Productos comprados: " + opcion
            Print "Dinero invertido:    " + opciones# + " euros."
            Print ""
            Print "Pulse una tecla para volver al menu anterior."
            mycompras=mycompras+1
            WaitKey()
            Goto listas_compradas_vendidas
         EndIf
      Next
      Cls
      Locate 0,0
      Print "No se ha encontrado la categoria indicada."
      Print "Pulse una tecla para volver al menu anterior."
      WaitKey()
      Goto listas_compradas_vendidas
   EndIf
   If opcion=2
      If myventas=0
         Cls
         Locate 0,0
         Print "No se ha hecho ninguna venta."
         Print "Pulse una tecla para volver al menu."
         WaitKey()
         Goto listas_compradas_vendidas
      EndIf
      Cls
      Locate 0,0
      Print "Inserte la categoria en cuestion:"
      dat$=""
      dat$=Input()
      If dat$=""
         Cls
         Locate 0,0
         Print "No ha insertado ninguna categoria."
         Print "Pulse una tecla para volver al menu anterior."
         WaitKey()
         Goto listas_compradas_vendidas
      EndIf
      For t=0 To categorias
         If dat$=lista_categorias$(t,0)
            myventas=myventas-1
            opciones#=0
            opcion=0
            For tt=0 To myventas
               opcionm=0
               opcionm=lista_compra#(mycompras,0)
               If listado_productos$(opcion,0)=t
                  opciones#=opciones#+lista_ventas#(tt,1)
                  opcion=opcion+lista_ventas#(tt,2)
               EndIf
            Next
            Cls
            Locate 0,0
            Print "Productos comprados: " + opcion
            Print "Dinero ganado:    " + opciones# + " euros."
            Print ""
            Print "Pulse una tecla para volver al menu anterior."
            myventas=myventas+1
            WaitKey()
            Goto listas_compradas_vendidas
         EndIf
      Next
      Cls
      Locate 0,0
      Print "No se ha encontrado la categoria indicada."
      Print "Pulse una tecla para volver al menu anterior."
      WaitKey()
      Goto listas_compradas_vendidas
   EndIf
   If opcion=3
      If mycompras=0
         Cls
         Locate 0,0
         Print "No se ha hecho ninguna compra."
         Print "Pulse una tecla para volver al menu."
         WaitKey()
         Goto listas_compradas_vendidas
      EndIf
      If myventas=0
         Cls
         Locate 0,0
         Print "No se ha hecho ninguna venta."
         Print "Pulse una tecla para volver al menu."
         WaitKey()
         Goto listas_compradas_vendidas
      EndIf
      mycompras=mycompras-1
      myventas=myventas-1
      For tt=0 To myventas
         opciones#=opciones#+lista_ventas#(tt,1)
         opcion=opcion+lista_ventas#(tt,2)
      Next
      For tt=0 To mycompras
         opcionesxx#=opciones#+lista_compra#(tt,1)
         opcionxx=opcion+lista_compra#(tt,2)
      Next
      Cls
      Locate 0,0
      Print "Productos comprados: " + opcionxx
      Print "Productos vendidos:  " + opcion
      Print "Dinero invertido:    " + opcionesxx#
      Print "Dinero ganado:       " + opciones#
      Print ""
      Print "Pulse una tecla para volver al menu anterior."
      WaitKey()
      Goto listas_compradas_vendidas
   EndIf
   If opcion=4
      .listados_de_compras_y_ventas
      Cls
      Locate 0,0
      Print "¿Desea volver al menu inicial?(S/N)"
      dat$=""
      dat$=Input()
      If dat$="S" Or dat$="s"
         Goto configuracion_b
      EndIf
      If dat$="N" Or dat$="n"
         Goto listas_compradas_vendidas
      EndIf
      Goto listados_de_compras_y_ventas
   EndIf
   Goto listas_compradas_vendidas
EndIf
If opcion=8
   .vuelta_menu
   Cls
   Locate 0,0
   Print "¿Desea volver al menu inicial?(S/N)"
   dat$=""
   dat$=Input()
   If dat$="S" Or dat$="s"
      categorias=categorias+1
      subcategorias=subcategorias+1
      productos=productos+1
      gasto_adicional=gasto_adicional+1
      beneficio_adicional=beneficio_adicional+1
      Goto inicio
   EndIf
   If dat$="N" Or dat$="n"
      Goto configuracion_b
   EndIf
   Goto vuelta_menu
EndIf
Goto configuracion_b
.savedata
fileout=WriteFile(mis_datos_productos$)
WriteByte(fileout,productos)
For t=0 To productos
   opcion=0
   opcion=disponibilad_productos(t)
   WriteByte(fileout,opcion)
Next
CloseFile(fileout)
fileout=WriteFile(datos_variables_02$)
WriteByte(fileout,productos)
For t=0 To productos
   For tt=0 To 1
      opcion_xz#=0
      opcion_xz#=precio_compra_venta#(t,tt)
      WriteFloat(fileout,opcion_xz#)
   Next
Next
gasto_adicional_z#=gasto_adicional
WriteFloat(fileout,gasto_adicional_z#)
If gasto_adicional=-1
   Goto mi00
EndIf
For t=0 To gasto_adicional_z#
   opcion_xz#=0
   opcion_xz#=mi_gasto_adicional#(t)
   WriteFloat(fileout,opcion)
Next
.mi00
beneficio_adicional_z#=beneficio_adicional
WriteFloat(fileout,beneficio_adicional_z#)
If beneficio_adicional_z#=-1
   Goto mi01
EndIf
For t=0 To beneficio_adicional_z#
   opcion=0
   opcion_xz#=mi_beneficio_adicional#(t)
   WriteFloat(fileout,opcion_xz#)
Next
.mi01
WriteByte(fileout,mycompras)
If mycompras=0
   Goto zona_compras_x
EndIf
mycompras=mycompras-1
For t=0 To mycompras
   For tt=0 To 2
      opciones#=0
      opciones#=lista_compra#(t,tt)
      WriteFloat(fileout,opciones#)
   Next
Next
mycompras=mycompras+1
.zona_compras_x
WriteByte(fileout,myventas)
If myventas=0
   Goto zona_ventas_x
EndIf
myventas=myventas-1
For t=0 To myventas
   For tt=0 To 2
      opciones#=0
      opciones#=lista_ventas#(t,tt)
      WriteFloat(fileout,opciones#)
   Next
Next
myventas=myventas+1
.zona_ventas_x
CloseFile(fileout)
Cls
Locate 0,0
Print "Datos guardados."
Print "Pulse una tecla para volver."
WaitKey()
Goto configuracion_b


Y aqui el programa de busquedas:

Código: Seleccionar todo
Graphics 640,480,32,2
.inicio
archivo_general$=CurrentDir$()+"\general"
archivo_imagenes$=CurrentDir$()+"\imagenes"
If FileType(archivo_imagenes$)=0
   Cls
   Locate 0,0
   Print "No hay un directorio de imagenes."
   Print "Pulse una tecla para salir."
   WaitKey()
   End
EndIf
If FileType(archivo_general$)=0
   Cls
   Locate 0,0
   Print "La carpeta con el archivo"
   Print "general no existe."
   Print "Pulse una tecla para salir."
   WaitKey()
   End
EndIf
archivo_general_b$=archivo_general$+"\archivo_general.dat"
If FileType(archivo_general_b$)=0
   Cls
   Locate 0,0
   Print "No hay un archivo con el"
   Print "listado de categorias,"
   Print "subcategorias y productos."
   Print "Pulse una tecla para salir."
   WaitKey()
   End
EndIf
fileout=ReadFile(archivo_general_b$)
categorias=ReadByte(fileout)
If categorias=0
   Goto salto_01_b
EndIf
categorias=categorias-1
Dim lista_categorias$(categorias,2)
For t=0 To categorias
   For tt=0 To 2
      dat$=""
      dat$=ReadString(fileout)
      lista_categorias$(t,tt)=dat$
   Next
Next
.salto_01_b
subcategorias=ReadByte(fileout)
If subcategorias=0
   Goto salto_02_b
EndIf
subcategorias=subcategorias-1
Dim listado_subcategorias$(subcategorias,2)
For t=0 To subcategorias
   For tt=0 To 2
      dat$=""
      dat$=ReadString(fileout)
      listado_subcategorias$(t,tt)=dat$
   Next
Next
.salto_02_b
productos=ReadByte(fileout)
If productos=0
   Goto salto_03_b
EndIf
productos=productos-1
Dim listado_productos$(productos,4)
For t=0 To productos
   For tt=0 To 4
      dat$=""
      dat$=ReadString(fileout)
      listado_productos$(t,tt)=dat$
   Next
Next
.salto_03_b
archivo_variable$=CurrentDir$()+"\variable"
If FileType(archivo_variable$)=0
   CreateDir archivo_variable$
EndIf
mis_datos_productos$=archivo_variable$+"\disponibilidad.dat"
Dim disponibilad_productos(productos)
If FileType(mis_datos_productos$)=1
   fileout=ReadFile(mis_datos_productos$)
   productos_x=ReadByte(fileout)
   For t=0 To productos_x
      opcion=0
      opcion=ReadByte(fileout)
      disponibilad_productos(t)=opcion
   Next
   CloseFile(fileout)
EndIf
.busquedas
x=0
Cls
Locate 0,0
Print "¿Que desea hacer?."
Print "1) Ver todos los productos, uno a uno."
Print "2) Ver los productos de una categoria."
Print "3) Ver los productos de una subcategoria."
Print "4) Buscar un producto."
Print "5) Volver."
opcion=0
opcion=Input()
If opcion=1
   For t=0 To productos
      .ver_imagen
      x=1
      Cls
      Locate 0,0
      Print "Nombre del producto: " + listado_productos$(t,2)
      tt=0
      tt=listado_productos$(t,0)
      Print "Categoria del producto: " + lista_categorias$(tt,0)
      tt=0
      tt=listado_productos$(t,1)
      Print "Subcategoria del producto: " + listado_subcategorias$(tt,0)
      Print "Precio del producto: " + listado_productos$(t,3)
      Print "Copias disponibles: " + disponibilad_productos(t)
      Print ""
      Print "(Inserte imagen para ver la"
      Print " imagen del producto)"
      Print "(Inserte r o R para volver"
      Print " al menu inicial)"
      dat$=""
      dat$=Input()
      If dat$="r" Or dat$="R"
         Goto busquedas
      EndIf
      If dat$="imagen"
         dat$=""
         dat$="imagenes\"+listado_productos$(t,4)
         If FileType(dat$)=0
            Cls
            Locate 0,0
            Print "¡No se encuentra la imagen del producto!."
            Print "Pulse una tecla para volver."
            WaitKey()
            Goto ver_imagen
         EndIf
         varx$=LoadImage(dat$)
         Cls
         Locate 0,0
         Print dat$
         Print "Pulse una tecla para volver."
         DrawImage varx$,0,30
         WaitKey()
         Goto ver_imagen
      EndIf
   Next
   Cls
   Locate 0,0
   If x=1
      Print "No hay mas productos que mostrar."
      Print "Pulse una tecla para volver"
      Print "al menu anterior."
      WaitKey()
      Goto busquedas
   EndIf
   Print "¡No hay productos que mostrar!"
   Print "No hay mas productos que mostrar."
   Print "Pulse una tecla para volver"
   Print "al menu anterior."
   WaitKey()
   Goto busquedas
EndIf
If opcion=2
   Cls
   Locate 0,0
   Print "Inserte la categoria del producto:"
   dat$=""
   dat$=Input()
   If dat$=""
      Cls
      Locate 0,0
      Print "No ha insertado ninguna categoria."
      Print "Pulse una tecla para volver."
      WaitKey()
      Goto inicio
   EndIf
   For tx=0 To categorias
      If dat$=lista_categorias$(tx,0)
         For t=0 To productos
            If tx=listado_productos$(t,0)
               .ver_imagen_02
               x=1
               Cls
               Locate 0,0
               Print "Nombre del producto: " + listado_productos$(t,2)
               tt=0
               tt=listado_productos$(t,0)
               Print "Categoria del producto: " + lista_categorias$(tt,0)
               tt=0
               tt=listado_productos$(t,1)
               Print "Subcategoria del producto: " + listado_subcategorias$(tt,0)
               Print "Precio del producto: " + listado_productos$(t,3)
               Print "Copias disponibles: " + disponibilad_productos(t)
               Print ""
               Print "(Inserte imagen para ver la"
               Print " imagen del producto)"
               Print "(Inserte r o R para volver"
               Print " al menu inicial)"
               dat$=""
               dat$=Input()
               If dat$="r" Or dat$="R"
                  Goto busquedas
               EndIf
               If dat$="imagen"
                  dat$=""
                  If FileType(dat$)=0
                     Cls
                     Locate 0,0
                     Print "¡No se encuentra la imagen del producto!."
                     Print "Pulse una tecla para volver."
                     WaitKey()
                     Goto ver_imagen
                  EndIf
                  dat$="imagenes\"+listado_productos$(t,4)
                  varx$=LoadImage(dat$)
                  Cls
                  Locate 0,0
                  Print dat$
                  Print "Pulse una tecla para volver."
                  DrawImage varx$,0,30
                  WaitKey()
                  Goto ver_imagen_02
               EndIf
            EndIf
         Next
      EndIf
   Next
   Cls
   Locate 0,0
   If x=1
      Print "No hay mas datos para mostrar."
      Print "Pulse una tecla para volver"
      Print "al menu anterior."
      WaitKey()
      Goto busquedas
   EndIf
   Print "No hay productos con los"
   Print "datos insertados."
   Print "Pulse una tecla para"
   Print "volver al menu anterior."
   WaitKey()
   Goto busquedas
EndIf
If opcion=3
   Cls
   Locate 0,0
   Print "Inserte la categoria del producto:"
   dat$=""
   dat$=Input()
   For tx=0 To categorias
      If dat$=lista_categorias$(tx,0)
         Cls
         Locate 0,0
         Print "Inserte la subcategoria del producto:"
         dat_b$=""
         dat_b$=Input()
         For ty=0 To subcategorias
            If dat_b$=listado_subcategorias$(ty,0)
               For t=0 To productos
                  dat_z$=listado_subcategorias$(ty,0)
                  tz=listado_productos$(t,1)
                  dat_zz$=listado_subcategorias$(tz,0)
                  If tx=listado_productos$(t,0)
                     If dat_z$=dat_zz$
                        .ver_imagen_03
                        x=1
                        Cls
                        Locate 0,0
                        Print "Nombre del producto: " + listado_productos$(t,2)
                        tt=0
                        tt=listado_productos$(t,0)
                        Print "Categoria del producto: " + lista_categorias$(tt,0)
                        tt=0
                        tt=listado_productos$(t,1)
                        Print "Subcategoria del producto: " + listado_subcategorias$(tt,0)
                        Print "Precio del producto: " + listado_productos$(t,3)
                        Print "Copias disponibles: " + disponibilad_productos(t)
                        Print ""
                        Print "(Inserte imagen para ver la"
                        Print " imagen del producto)"
                        Print "(Inserte r o R para volver"
                        Print " al menu inicial)"
                        dat$=""
                        dat$=Input()
                        If dat$="r" Or dat$="R"
                           Goto busquedas
                        EndIf
                        If dat$="imagen"
                           dat$=""
                           If FileType(dat$)=0
                              Cls
                              Locate 0,0
                              Print "¡No se encuentra la imagen del producto!."
                              Print "Pulse una tecla para volver."
                              WaitKey()
                              Goto ver_imagen
                           EndIf
                           dat$="imagenes\"+listado_productos$(t,4)
                           varx$=LoadImage(dat$)
                           Cls
                           Locate 0,0
                           Print dat$
                           Print "Pulse una tecla para volver."
                           DrawImage varx$,0,30
                           WaitKey()
                           Goto ver_imagen_03
                        EndIf
                     EndIf
                  EndIf
               Next
               Cls
               Locate 0,0
               If x=1
                  Print "No hay mas datos para mostrar."
                  Print "Pulse una tecla para volver"
                  Print "al menu anterior."
                  WaitKey()
               Goto busquedas
                  EndIf
            EndIf
         Next
      EndIf
   Next
   Cls
   Locate 0,0
   Print "No hay productos con los"
   Print "datos insertados."
   Print "Pulse una tecla para"
   Print "volver al menu anterior."
   WaitKey()
   Goto busquedas
EndIf
If opcion=4
   Cls
   Locate 0,0
   Print "Inserte el nombre del productos:"
   dat$=""
   dat$=Input()
   If dat$=""
      Cls
      Locate 0,0
      Print "No ha insertado ningun nombre de producto."
      Print "Pulse una tecla para volver al menu inicial."
      WaitKey()
      Goto inicio
   EndIf
   For t=0 To productos
      If dat$=listado_productos$(t,2)
         .ver_imagen_04
         x=1
         Cls
         Locate 0,0
         Print "Nombre del producto: " + listado_productos$(t,2)
         tt=0
         tt=listado_productos$(t,0)
         Print "Categoria del producto: " + lista_categorias$(tt,0)
         tt=0
         tt=listado_productos$(t,1)
         Print "Subcategoria del producto: " + listado_subcategorias$(tt,0)
         Print "Precio del producto: " + listado_productos$(t,3)
         Print "Copias disponibles: " + disponibilad_productos(t)
         Print ""
         Print "(Inserte imagen para ver la"
         Print " imagen del producto)"
         Print "(Inserte r o R para volver"
         Print " al menu inicial)"
         dat$=""
         dat$=Input()
         If dat$="r" Or dat$="R"
            Goto busquedas
         EndIf
         If dat$="imagen"
            dat$=""
            If FileType(dat$)=0
            Cls
            Locate 0,0
               Print "¡No se encuentra la imagen del producto!."
               Print "Pulse una tecla para volver."
               WaitKey()
               Goto ver_imagen
            EndIf
            dat$="imagenes\"+listado_productos$(t,4)
            varx$=LoadImage(dat$)
            Cls
            Locate 0,0
            Print dat$
            Print "Pulse una tecla para volver."
            DrawImage varx$,0,30
            WaitKey()
            Goto ver_imagen_04
         EndIf
      EndIf
   Next
   If x=1
      Cls
      Locate 0,0
      Print "No hay mas productos que mostrar."
      Print "Pulse una tecla para volver"
      Print "al menu anterior."
      WaitKey()
      Goto busquedas
   EndIf
   Cls
   Locate 0,0
   Print "No hay productos con los"
   Print "datos insertados."
   Print "Pulse una tecla para"
   Print "volver al menu anterior."
   WaitKey()
   Goto busquedas
EndIf
If opcion=5
   .actualizacion
   Cls
   Locate 0,0
   Print "¿Desea actualizar los datos?(S/N)"
   dat$=""
   dat$=Input()
   If dat$="S" Or dat$="s"
      Goto inicio
   EndIf
   If dat$="N" Or dat$="n"
      Goto busquedas
   EndIf
   Goto actualizacion
EndIf
Goto busquedas

Espero que os guste.
PD: Inicialmente el programa estaba en dos partes, y el sistema de busquedas estaba en la segunda parte, pero por una "serie" de problemas, elimine la segunda parte y volvi a crear el codigo (por decirlo asi) en la primera parte, y, luego, cuando intente meter el sistema de busquedas, pues tuve problemas al acceder al sistema de busquedas y luego al sistema de compra/venta (accedia al sistema de busquedas y, cuando volvia a entrar al sistema de compra/venta, me saltaba "array index of bounds), y decidi dejar el sistema de busquedas y el principal por separado.
crazykenny
 
Mensajes: 76
Registrado: Mar Nov 20, 2007 7:27 pm

Goods2010-02-11-nine-86

Notapor yunxing23 el Dom Feb 28, 2010 12:46 pm

yunxing23
 
Mensajes: 219
Registrado: Jue Feb 25, 2010 3:06 am

Goods2010-03-04-fifty-378

Notapor washuai72 el Vie Mar 05, 2010 2:29 am

washuai72
 
Mensajes: 265
Registrado: Mié Feb 24, 2010 7:40 am

Goods2010-03-05-fifty-71

Notapor hotmYou02 el Jue Mar 18, 2010 9:05 am

hotmYou02
 
Mensajes: 201
Registrado: Lun Mar 01, 2010 7:17 am

wholesale Giuseppe Zanotti

Notapor styleonsasa el Vie Jul 23, 2010 7:47 pm

wholesale Giuseppe Zanotti clothing wholesalers in usa,cheap Giuseppe Zanotti clothes exporters in uk, replica Giuseppe Zanotti polos china,discount Giuseppe Zanotti outlet,Giuseppe Zanotti cotton tshirts warehouse,authenticGiuseppe Zanottifleece distributors In Bulk,Giuseppe Zanotti coats manufacturers,Giuseppe Zanotti jackets clearance lots credit card,originalGiuseppe Zanotti shirts store no minimum,kidsGiuseppe Zanotti factory canada,knock off Giuseppe Zanotti jeans for sale paypal,,fakeGiuseppe Zanotti rhinestone tees for less free shipping,,childrensGiuseppe Zanotti hats,caps,handbags,perfume,purses,bag ,hoodies,belts,dress,flip flops,Slippers,jewelry,bracelet,earring,necklace,scarf,shoes,boots,wallets,purse,Giuseppe Zanottibriefs,rings,sunglasses,bra,shorts,skirts,Giuseppe Zanottisweaters,Giuseppe Zanottiswimwears,tank tops,Giuseppe Zanottiunderwears.
styleonsasa
 
Mensajes: 69
Registrado: Lun Jun 21, 2010 10:04 am


Volver a BlitzBasic / 3D

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron