Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Chooser No Acepta Mas De 62 Argumentos :(
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Chooser No Acepta Mas De 62 Argumentos :( 
 

Select Case libro  
    Case 1 To 66
      Xcoleccion = Choose(libro, cGenesis, cExodo, cLevitico, cNumeros,
        cDeuteronomio, cJosue, cJueces, cRut, c1Samuel, cVacia, cVacia,
        cVacia, cVacia, cVacia, cVacia, cVacia, cVacia, cVacia, cVacia,
        cVacia, cVacia, cVacia, cVacia, cVacia, cVacia, cVacia, cVacia,
        cOseas, cJoel, cAmos, cAbdias, cJonas, cMiqueas, cNahum, cHabacuc,
        cSofonias, cHageo, cZacarias, cMalaquias,
        cMateo, cMarcos, cLucas, cJuan, cHechos, cRomanos, c1Corintios,
        c2Corintios, cGalatas, cEfesios, cFilipenses, cColosenses,
        c1Tesalonicenses, c2Tesalonicenses, c1Timoteo,
        c2Timoteo, cTito, cFilemon, cHebreos, cSantiago, c1Pedro,
        c2Pedro, c1Juan) ' c2Juan, c3Juan, cJudas, cApocalipsis)
        'demasiados argumentos al parecer chooser no acepta mas de 62 argumentos???
      Return Xcoleccion
    Case Else
      Message.Error("(Valor incorrecto " & libro & ") Libro debe estar entre 1 y 66")
      Return cVacia
  End Select



la idea de hacerlo asi es evitar esto:

Select Case libro
    Case 1
      Return cGenesis
    Case 2
         etc....
    Case 66
      Return cApocalipsis
    Case Else
      Return cVacia
  End Select


que opinan o que experiencia tienen ustedes?
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Chooser No Acepta Mas De 62 Argumentos :( 
 
Propongo un array de cadenas.

Ad exemplum:

Public Sub Main()
  
  Dim libro As New String[]

  libro = ["cGenesis", "cExodo", "cLevitico", "cNumeros", "cDeuteronomio", "cJosue", "cJueces", "cRut",
              "c1Samuel", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia",
              "cVacia", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia",
              "cVacia", "cVacia", "cVacia", "cOseas", "cJoel", "cAmos", "cAbdias", "cJonas",
              "cMiqueas", "cNahum", "cHabacuc", "cSofonias", "cHageo", "cZacarias", "cMalaquias", "cMateo",
              "cMarcos", "cLucas", "cJuan", "cHechos", "cRomanos", "c1Corintios", "c2Corintios", "cGalatas",
              "cEfesios", "cFilipenses", "cColosenses", "c1Tesalonicenses", "c2Tesalonicenses", "c1Timoteo", "c2Timoteo",
              "cTito", "cFilemon", "cHebreos", "cSantiago", "c1Pedro", "c2Pedro", "c1Juan", "63", "64",
              "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80",
              "81", "82", "83", "84", "85", "86", "87", "88", "89", "90",
              "91", "92", "93", "94", "95", "96", "97", "98", "99", "centum"]
        
        Print "Total elementos:   "; libro.Count
        Print "Elegido elemento: "; libro[99]        

End

 



 
última edición por vuott el Viernes, 10 Agosto 2018, 23:15; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Chooser No Acepta Mas De 62 Argumentos :( 
 
Vuott:

Se supone que tiene que devolver una colección, creo.  

v3ctor:

¿ Cómo elige el usuario el libro ?. ¿ Un ListBox ?.
¿ Y con el indice de este se conoce la colección ?

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Chooser No Acepta Mas De 62 Argumentos :( 
 
Shell escribió: [Ver mensaje]
Se supone que tiene que devolver una colección, creo.  

No me parece, porqué la función Choose( ) no es concebida ni es estructurada como una Collection: no tiene una "llave".


No te gusta el array de String ? .....sobre lo he escrito como si fuera una serpiente: en zig zag.  
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Chooser No Acepta Mas De 62 Argumentos :( 
 
vuott escribió: [Ver mensaje]
Propongo un array de cadenas.

Ad exemplum:

Public Sub Main()
  
  Dim libro As New String[]

  libro = ["cGenesis", "cExodo", "cLevitico", "cNumeros", "cDeuteronomio", "cJosue", "cJueces", "cRut",
              "c1Samuel", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia",
              "cVacia", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia", "cVacia",
              "cVacia", "cVacia", "cVacia", "cOseas", "cJoel", "cAmos", "cAbdias", "cJonas",
              "cMiqueas", "cNahum", "cHabacuc", "cSofonias", "cHageo", "cZacarias", "cMalaquias", "cMateo",
              "cMarcos", "cLucas", "cJuan", "cHechos", "cRomanos", "c1Corintios", "c2Corintios", "cGalatas",
              "cEfesios", "cFilipenses", "cColosenses", "c1Tesalonicenses", "c2Tesalonicenses", "c1Timoteo", "c2Timoteo",
              "cTito", "cFilemon", "cHebreos", "cSantiago", "c1Pedro", "c2Pedro", "c1Juan", "63", "64",
              "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80",
              "81", "82", "83", "84", "85", "86", "87", "88", "89", "90",
              "91", "92", "93", "94", "95", "96", "97", "98", "99", "centum"]
        
        Print "Total elementos:   "; libro.Count
        Print "Elegido elemento: "; libro[99]        

End


tiene que devolver una coleccion:

ejemplo de una coleccion:
Public cGenesis As Collection = [
  "1": "31", "2": "25", "3": "24", "4": "26", "5": "32",
  "6": "22", "7": "24", "8": "22", "9": "29", "10": "32",
  "11": "32", "12": "20", "13": "18", "14": "24", "15": "21",
  "16": "16", "17": "27", "18": "33", "19": "38", "20": "18",
  "21": "34", "22": "24", "23": "20", "24": "67", "25": "34",
  "26": "35", "27": "46", "28": "22", "29": "35", "30": "43",
  "31": "55", "32": "32", "33": "20", "34": "31", "35": "29",
  "36": "43", "37": "36", "38": "30", "39": "23", "40": "23",
  "41": "57", "42": "38", "43": "34", "44": "34", "45": "28",
  "46": "34", "47": "31", "48": "22", "49": "33", "50": "26"] ''1


primer numero es capitulo, segundo numero cantidad de versiculos que tiene el capitulo
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Chooser No Acepta Mas De 62 Argumentos :( 
 
Shell escribió: [Ver mensaje]
Vuott:

Se supone que tiene que devolver una colección, creo.  

v3ctor:

¿ Cómo elige el usuario el libro ?. ¿ Un ListBox ?.
¿ Y con el indice de este se conoce la colección ?

Saludos


1-de varias formas en particular un clase nueva que estoy terminando
2-no
3-si

Public Function ObtenerColeccion(libro As Byte) As Collection
  
  Dim cVacia As New Collection
  Dim Xcoleccion As Collection
  
  ' Select Case libro  
  '   Case 1 To 66
  '     Xcoleccion = Choose(libro, cGenesis, cExodo, cLevitico, cNumeros,
  '       cDeuteronomio, cJosue, cJueces, cRut, c1Samuel, cVacia, cVacia,
  '       cVacia, cVacia, cVacia, cVacia, cVacia, cVacia, cVacia, cVacia,
  '       cVacia, cVacia, cVacia, cVacia, cVacia, cVacia, cVacia, cVacia,
  '       cOseas, cJoel, cAmos, cAbdias, cJonas, cMiqueas, cNahum, cHabacuc,
  '       cSofonias, cHageo, cZacarias, cMalaquias,
  '       cMateo, cMarcos, cLucas, cJuan, cHechos, cRomanos, c1Corintios,
  '       c2Corintios, cGalatas, cEfesios, cFilipenses, cColosenses,
  '       c1Tesalonicenses, c2Tesalonicenses, c1Timoteo,
  '       c2Timoteo, cTito, cFilemon, cHebreos, cSantiago, c1Pedro,
  '       c2Pedro, c1Juan) ' c2Juan, c3Juan, cJudas, cApocalipsis)
  '       'demasiados argumentos al parecer chooser no acepta mas de 62 argumentos???
  '     Return Xcoleccion
  '   Case Else
  '     Message.Error("(Valor incorrecto " & libro & ") Libro debe estar entre 1 y 66")
  '     Return cVacia
  ' End Select
  
  '**********************************************************************  
  
  Select Case libro
    Case 1
      Return cGenesis
    Case 2
      Return cExodo
    Case 3
      Return cLevitico
    Case 4
      Return cNumeros
    Case 5
      Return cDeuteronomio
    Case 6
      Return cJosue
    Case 7
      Return cJueces
    Case 8
      Return cRut
    Case 9
      Return c1Samuel
    Case 10
      
    Case 11
      
    Case 12
      
    Case 13
      
    Case 14
      
    Case 15
      
    Case 16
      
    Case 17
      
    Case 18
      
    Case 19
      
    Case 20
      
    Case 21
      
    Case 22
      
    Case 23
      
    Case 24
      
    Case 25
      
    Case 26
      
    Case 27
      
    Case 28
      Return cOseas
    Case 29
      Return cJoel
    Case 30
      Return cAmos
    Case 31
      Return cAbdias
    Case 32
      Return cJonas
    Case 33
      Return cMiqueas
    Case 34
      Return cNahum
    Case 35
      Return cHabacuc
    Case 36
      Return cSofonias
    Case 37
      Return cHageo
    Case 38
      Return cZacarias
    Case 39
      Return cMalaquias
      
      ' NUEVO TESTAMENTO ****************************************
    Case 40
      Return cMateo
    Case 41
      Return cMarcos
    Case 42
      Return cLucas
    Case 43
      Return cJuan
    Case 44
      Return cHechos
    Case 45
      Return cRomanos
    Case 46
      Return c1Corintios
    Case 47
      Return c2Corintios
    Case 48
      Return cGalatas
    Case 49
      Return cEfesios
    Case 50
      Return cFilipenses
    Case 51
      Return cColosenses
    Case 52
      Return c1Tesalonicenses
    Case 53
      Return c2Tesalonicenses
    Case 54
      Return c1Timoteo
    Case 55
      Return c2Timoteo
    Case 56
      Return cTito
    Case 57
      Return cFilemon
    Case 58
      Return cHebreos
    Case 59
      Return cSantiago
    Case 60
      Return c1Pedro
    Case 61
      Return c2Pedro
    Case 62
      Return c1Juan
    Case 63
      Return c2Juan
    Case 64
      Return c3Juan
    Case 65
      Return cJudas
    Case 66
      Return cApocalipsis
    Case Else
      Return cVacia
  End Select
  
End


 55_1533950245_556705
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Sabado, 11 Agosto 2018, 02:17; editado 1 vez 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Chooser No Acepta Mas De 62 Argumentos :( 
 
Public Function CapConMenosVers(libro As Byte) As String[]
  
  Dim Menor As Byte = 255
  Dim capitulo As Byte
  Dim coleccion As New Collection
  Dim datos As New String[2]
  
  coleccion = ObtenerColeccion(libro)
  
  For Each capitulo In coleccion
    If Menor > CByte(capitulo) Then
      Menor = CByte(capitulo)
      datos[0] = coleccion.Key
      datos[1] = CStr(Menor)
    Endif
  Next
  
  Return datos
  
Catch
  
End

Public Function TotalVersiculosLibro(libro As Byte) As Integer
  
  Dim total As Integer
  Dim capitulo As String
  Dim coleccion As New Collection
  
  coleccion = ObtenerColeccion(libro)
  
  For Each capitulo In coleccion
    total += CInt(capitulo)
  Next
  
  Return total
  
End

 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Chooser No Acepta Mas De 62 Argumentos :( 
 
v3ctor escribió: [Ver mensaje]
tiene que devolver una coleccion:


En los ejemplos de las preguntas sería oportuno explicitar también la declaración de los tipos de valores existentes en los ejemplos.
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Chooser No Acepta Mas De 62 Argumentos :( 
 
v3ctor:

¿ Qué te parece una estructura tal como esta ?.

Private libros As Collection = ["0": cGenesis, "1": cExodo]  
 


Por ejemplo para devolver una colección al azar. Un libro.

'Número capitulo, número de versículos

Private cGenesis As Collection = [
  "1": "31", "2": "25", "3": "24", "4": "26", "5": "32",
  "6": "22", "7": "24", "8": "22", "9": "29", "10": "32",
  "11": "32", "12": "20", "13": "18", "14": "24", "15": "21",
  "16": "16", "17": "27", "18": "33", "19": "38", "20": "18",
  "21": "34", "22": "24", "23": "20", "24": "67", "25": "34",
  "26": "35", "27": "46", "28": "22", "29": "35", "30": "43",
  "31": "55", "32": "32", "33": "20", "34": "31", "35": "29",
  "36": "43", "37": "36", "38": "30", "39": "23", "40": "23",
  "41": "57", "42": "38", "43": "34", "44": "34", "45": "28",
  "46": "34", "47": "31", "48": "22", "49": "33", "50": "26"] ''1

'Invento el número de capitulos y versículos del Exodo

Private cExodo As Collection = [
  "1": "12", "2": "30", "3": "25"
] ''2

Private libros As Collection = ["0": cGenesis, "1": cExodo]  

Public Sub Main()
  
  Dim coleciondevuelta As Collection  'En ella devuelve el contenido de un libro
  
  Randomize
  
  coleciondevuelta = DevuelveLibroAzar(libros)
  Stop
  
End

Public Sub DevuelveLibroAzar(unacoleccion As Collection) As Collection
  
  Dim libroazar As Integer
  
  libroazar = Int(Rnd(unacoleccion.Count))
  Return unacoleccion[CStr(libroazar)]
  
End
 


Como el valor es variant en una colección, se le pude asignar otra colección.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Chooser No Acepta Mas De 62 Argumentos :( 
 
Shell escribió: [Ver mensaje]
v3ctor:

¿ Qué te parece una estructura tal como esta ?.

Private libros As Collection = ["0": cGenesis, "1": cExodo]  
 


Por ejemplo para devolver una colección al azar. Un libro.

'Número capitulo, número de versículos

Private cGenesis As Collection = [
  "1": "31", "2": "25", "3": "24", "4": "26", "5": "32",
  "6": "22", "7": "24", "8": "22", "9": "29", "10": "32",
  "11": "32", "12": "20", "13": "18", "14": "24", "15": "21",
  "16": "16", "17": "27", "18": "33", "19": "38", "20": "18",
  "21": "34", "22": "24", "23": "20", "24": "67", "25": "34",
  "26": "35", "27": "46", "28": "22", "29": "35", "30": "43",
  "31": "55", "32": "32", "33": "20", "34": "31", "35": "29",
  "36": "43", "37": "36", "38": "30", "39": "23", "40": "23",
  "41": "57", "42": "38", "43": "34", "44": "34", "45": "28",
  "46": "34", "47": "31", "48": "22", "49": "33", "50": "26"] ''1

'Invento el número de capitulos y versículos del Exodo

Private cExodo As Collection = [
  "1": "12", "2": "30", "3": "25"
] ''2

Private libros As Collection = ["0": cGenesis, "1": cExodo]  

Public Sub Main()
  
  Dim coleciondevuelta As Collection  'En ella devuelve el contenido de un libro
  
  Randomize
  
  coleciondevuelta = DevuelveLibroAzar(libros)
  Stop
  
End

Public Sub DevuelveLibroAzar(unacoleccion As Collection) As Collection
  
  Dim libroazar As Integer
  
  libroazar = Int(Rnd(unacoleccion.Count))
  Return unacoleccion[CStr(libroazar)]
  
End
 


Como el valor es variant en una colección, se le pude asignar otra colección.  

Saludos


interesante lo pruebo, también estoy manejando esta posibilidad que no he probado porque me faltan unas diez colecciones (los datos) por terminar.

Public Allcolecciones As Collection[] = [cGenesis, cExodo]

 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Bucle Until Y Los Argumentos Posicionales Shell Shell Scripting 4 Viernes, 06 Marzo 2015, 10:48 Ver último mensaje
Shell
No hay nuevos mensajes Un Campo Sql Varchar(32) Que Acepta Mas De... v3ctor Bases de Datos 1 Martes, 27 Diciembre 2016, 00:00 Ver último mensaje
tincho
No hay nuevos mensajes Argumentos Al Programa Desde El IDE gatoviejo General 3 Viernes, 28 Julio 2017, 17:13 Ver último mensaje
v3ctor
No hay nuevos mensajes Gambas3: SerialPort1.Speed No Acepta Confi... AlfredoSC Controles/Librerías/Componentes 6 Domingo, 09 Febrero 2020, 20:55 Ver último mensaje
jguardon
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron