Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - yovaninu

#41
PHP / Re: Problema al recorrer array
13 Julio 2012, 23:47 PM
j al ser una variable debe estar precedida por $, ahi el error.
#42
Mi opinion: Personalmente antes usaba la maquetacion con Tablas HTML, con el tiempo vi que para no alejarme del estandar actual debia pasar a diseñar o maquetar usando CSS, hubieron problemas si pero al final senti satisfaccion por maquetar con CSS puro y hacer lo que 'todo mundo hace y recomienda', y claro si muchos lo recomiendad es por algo asi que por ahi suponia que era ilogico ir contra la corriente.

Sin embargo me sucedieron 2 cosas que se debe subrayar: El CSS actual es dificil de masticar con IE y quieran o no les guste o no, IE es el que domina el mercado actual muy a pesar de las ultimas estadisiticas que dicen que Chrome ya lo supero, la verdad no se de donde sacaron eso por que en mi entorno, en mi trabajo, y mis clientes, 20 de cada 10 usan explorer es decir, los futuros usuarios van a seguir usando explorer por que asi lo dicen y asi les enseñaron aun asi me he pasado horas y horas quebrando la cabeza para poder hacer mis maquetaciones CSS lo mas compatible posible con FF con CHrome y con IE, era como programar 3 veces.

Otro aspecto a subrayar es el tema de datos tabulados, y personalmente creo que hacerlo con tablas es más rapido y mas manejable añadiendo aspecto y funcionalidad a dichas tablas con CSS, puedo estar equivocado pero la verdad no tuve tiempo de probar el tema de CSS versus tablas, quiza mas adelante lo haga.

Y finalmente, cada quien tiene lo suyo, creo que el post va orientado a diseño WEB y supongo que ahi si debe ir CSS y si va con tablas no hay problema, pero un sistema via WEB necesariamente debera ir con tablas o al menos eso hago yo por que para mi es mas rapido y mas manejable, por ultimo usese ambos segun sea el requerimiento.

Ah! y otra cosa: El manejo del DOM tambien requiere mucho CSS a traves de Jquery por ejemplo y supongo que eso es punto a favor de CSS pero JQUERY y otros manejan tambien muy bien las queridas tablas.

Saludos.
#43
Uy perdon. asi es lo corrigo.

Y deben ser distintos pero en todo caso como ha de interpretarse ambos resultados distintos, es decir cual valor presentar para tomar una decision por ejemplo o desde que punto de vista analizar ambos resultados, esa es mi duda.
#44
Hola que tal, a ver si me ayudan a entender un poco mejor lo siguiente:
Un centro de atencion a clientes desea saber el % de atenciones que se realizo hasta la fecha y en general.

Ejemplo.

En ENERO se recibió 10 clientes de los cuales se atendio 5 (50% de atencion)
En FEBRERO se recibió 20 clientes de los cuales se atendio 2 (10% de atencion)
en MARZO se recibio 15 clientes de los cuales se atendio 9 (60% de atencion)

Si se desearia saber el porcentaje promedio de atencion en esos 3 meses, deberia sumar los de cada mes y dividirlos entre 3 verdad?, es decir (50+10+60)/3=40

40% de atencion a clientes en promedio por meses (I)

Ahora si lo vemos como el total de clientes que se recibio y el total que se atendio tenemos que en los tres meses se recibio un total de 45 (10+20+15) clientes de los cuales se atendio a 16(5+2+9), eso es:

35.55% de atenciones en total (II)

Mi duda es: ¿I y II no deberian ser iguales?
#45
Se que puede parece algo ilogico el resultado que deseo obtener, en realidad es algo complejo de explicar ya que tengo una tabla de esa forma que ya tiene muchos datos como para volver a reestructurar todo que quiza sea lo mejor. El ejemplo que puse es obviamente analogo a la tabla real de la que quiero obtener los resultados tal como lo explique.

La solucion que me plantea 'fran' no me sirve de mucho ya que existen datos asociados a los resultados que debe producir la consulta si es que eexistiera una para poder obtener lo que necesito.

De todas formas vere la manera de pensar en otra solucion alternativa.

#46
Hola, desde ya gracias por sus aportes

por ejemplo tengo una tabla 'clientes' y un campo 'aportes'
algo asi:

Tabla:clientes
aportes
  1
  1
  2
  3
  4
  4
  1
  1
  2
  2

Si deseo agrupar usando group by con "select aportes from clientes group by aportes" obtengo:
1
2
3
4

el mismo resultado obtengo si lo hago con distinct

pero lo que deseo obtener (no se si se pueda con una consulta) es
1
2
3
4
1
2

espero haberme explicado.

Un saludo


#47
Bueno, se que pocos estan interesados en el tema pero pongo las soluciones para aquellos interesados y programadores PHP aunque supongo tambien sirve para todos aquellos lenguajes que utilizan esta forma de comentarios, la idea es capturarlos del archivo fuente (y quitarlos por ejemplo), comentarios de la forma


// esto es un comentario


o de la forma


/* esto es
otro comentario
multilinea */


La expresion regular es:


"(\/\*(\s*|.*?)*\*\/)|(\/\/.*)"



Aunque hay errores con comentarios de la forma

<?php // comentario ?>


Y como valor agregado tambien he hallado la forma de capturar variables de un archivo php, y como se sabe éstas inician con un simbolo $

y su expresion regular es:


"(\$(\s*|.*?)(\?|}|&|\||;|\*|/|-|!|<|>|,|\[|\(|\)|\=|\]|\+|\'|\.|" & Chr(34) & "))"


Para todo aquel que le sirva.
#48
Hola que tal, estoy empezando con esto de las expresiones regulares, la siguiente me captura dentro de una cadena de texto todo lo que este dentro los simbolos de comnetarios de PHP por ejemplo:  

/* el comentario */


Esta seria su ER

ER="\/\*\s*([^\s]*)\s*\*\/"


Ahora si desearia capturar aquellos comentarios pero que estan en varias lineas, ¿Cual seria la expresion?
Es decir para comentarios tipo:

/* esto
es un
comentario */



He tratado de utilizar los modificadores de \n \r \m pero sin resultados.

Saludos


#49
Hace un tiempo estaba intentando hacer casi lo mismo, avance un poco pero le deje ahi por falta de tiempo, a ver si te ayuda en algo

http://foro.elhacker.net/programacion_cc/iquestque_esta_mal_con_esta_creacion_de_hilo_thread-t339322.0.html;msg1664556#msg1664556
#50
Siempre que me he puesto a resolver algun sudoku mi primer problema era obtener los candidatos para cada celda vacia, luego de un largo quebradero de cabeza los hallaba pero cabia la posibilidad de caer en errores, algunos sudoku on-line te permitian ver todos los candidatos de una celda pero para sus propios sudokus, en mi caso mis sudokus son de mi telefono movil y alli no tengo tal opcion, de manera que me puse a codear en VB y he aqui este pequeño código que obtiene los candidatos para las celdas de un sudoku correctamente propuesto. Lo he hecho en el control MSHFlexGrid por lo que se debe agregar en los componentes para que el programa pueda ejecutar correctamente.

Es evidente que el programa NO RESUELVE un sudoku, lo cual me parece bien, pues para resolverlo, cada uno debe poder hacerlo y asi ejercitarse, ademas que terminarlo es bastante gratificante, aunque debe serlo tambien realizar un code que haga que el propio ordenador lo haga por nosotros. En fin gusto de cada uno, en mi caso prefiero resolverlo manualmente.

Bueno, sin mas, aquí el código para quien le sirva:

Option Explicit
'9 filas x 9 columnas
Dim Sud(1 To 9, 1 To 9) As Byte



Private Sub CMDLLenar_Click()

Dim f As Byte
Dim c As Byte


'cargamos el SUDOKU con sus valores originales FIJOS
Sud(1, 2) = 9
Sud(1, 4) = 6
Sud(1, 6) = 5

Sud(2, 7) = 8
Sud(2, 9) = 1

Sud(3, 1) = 2
Sud(3, 5) = 3
Sud(3, 8) = 6

Sud(4, 1) = 3
Sud(4, 2) = 8
Sud(4, 5) = 9

Sud(6, 5) = 1
Sud(6, 8) = 2
Sud(6, 9) = 7

Sud(7, 2) = 1
Sud(7, 5) = 8
Sud(7, 9) = 9

Sud(8, 1) = 6
Sud(8, 3) = 4

Sud(9, 4) = 2
Sud(9, 6) = 7
Sud(9, 8) = 5



'visualizamos el array en el Hierarchical
For c = 1 To 9
    For f = 1 To 9
     If Sud(f, c) <> 0 Then
      Colocar f, c, Sud(f, c)
     End If
    Next
Next

'coloreamos de rojo los numeros fijos para diferenciarlos de los candidatos
Dim fila1 As Integer
Dim columna1 As Integer
With H1
   ' Recorre las filas
    For fila1 = 0 To 8
        For columna1 = 0 To 8
        .Row = fila1
        .Col = columna1
         If Val(.Text) > 0 Then
            .CellForeColor = &HFF& 'rojooo
         End If
         Next
    Next
   
   
   
    'coloreamos algunas regiones para diferenciar
    For fila1 = 0 To 2
        For columna1 = 0 To 2
        .Row = fila1
        .Col = columna1
            .CellBackColor = RGB(127, 220, 98)
         Next
    Next


    For fila1 = 3 To 5
        For columna1 = 3 To 5
        .Row = fila1
        .Col = columna1
            .CellBackColor = RGB(127, 123, 208)
         Next
    Next

    For fila1 = 6 To 8
        For columna1 = 6 To 8
        .Row = fila1
        .Col = columna1
            .CellBackColor = RGB(247, 123, 198)
         Next
    Next

    For fila1 = 0 To 2
        For columna1 = 6 To 8
        .Row = fila1
        .Col = columna1
            .CellBackColor = RGB(247, 220, 198)
         Next
    Next

    For fila1 = 6 To 8
        For columna1 = 0 To 2
        .Row = fila1
        .Col = columna1
            .CellBackColor = RGB(47, 220, 198)
         Next
    Next

End With


End Sub

Private Sub Command1_Click()


'///////////// Iniciamos a visualizar los candidatos ///////////


Dim Candidatos As Byte

Dim Casas As Byte '9 regiones o casas

For Casas = 1 To 9 'buscaremos los candidatos en las 9 casas o regiones
    For Candidatos = 1 To 9
      BuscarCandidatos Casas, Candidatos 'buscamos los candidatos posibles en las 9 casas
    Next
Next
 

End Sub
'Funcion que busca un valor en la fila indicada
Private Function BuscarFila(Fila As Byte, ValorBuscado As Byte)
Dim c As Byte
For c = 1 To 9
If Sud(Fila, c) = ValorBuscado Then
  BuscarFila = True
  Exit Function
Else
BuscarFila = False
End If
Next
End Function
'Funcion que busca un valor en la columna indicada
Private Function BuscarColumna(Columna As Byte, ValorBuscado As Byte)
Dim f As Byte
For f = 1 To 9
If Sud(f, Columna) = ValorBuscado Then
  BuscarColumna = True
  Exit Function
  Else
  BuscarColumna = False
End If
Next

End Function

'Funcion que nos dice si un valor indicado existe o no en una region o casa indicada
Function Encontrar(Casa As Byte, Valor As Byte) As Boolean
Dim f As Byte, c As Byte
   
    If Casa = 1 Then 'quiere decir que se va a buscar en la casa 1
        For f = 1 To 3 'busqueda por filas
              For c = 1 To 3
                If Sud(f, c) = Valor Then
                 Encontrar = True
                 Exit Function
                End If
              Next
        Next
    End If
   
    If Casa = 2 Then 'quiere decir que se va a buscar en la casa 2
        For f = 1 To 3 'busqueda por filas
              For c = 4 To 6
                If Sud(f, c) = Valor Then
                 Encontrar = True
                 Exit Function
                End If
              Next
        Next
    End If

    If Casa = 3 Then 'quiere decir que se va a buscar en la casa 3
        For f = 1 To 3 'busqueda por filas
              For c = 7 To 9
                If Sud(f, c) = Valor Then
                 Encontrar = True
                 Exit Function
                End If
              Next
        Next
    End If

    If Casa = 4 Then
        For f = 4 To 6 'busqueda por filas
              For c = 1 To 3
                If Sud(f, c) = Valor Then
                 Encontrar = True
                 Exit Function
                End If
              Next
        Next
    End If

    If Casa = 5 Then
        For f = 4 To 6 'busqueda por filas
              For c = 4 To 6
                If Sud(f, c) = Valor Then
                 Encontrar = True
                 Exit Function
                End If
              Next
        Next
    End If

    If Casa = 6 Then
        For f = 4 To 6 'busqueda por filas
              For c = 7 To 9
                If Sud(f, c) = Valor Then
                 Encontrar = True
                 Exit Function
                End If
              Next
        Next
    End If

    If Casa = 7 Then
        For f = 7 To 9 'busqueda por filas
              For c = 1 To 3
                If Sud(f, c) = Valor Then
                 Encontrar = True
                 Exit Function
                End If
              Next
        Next
    End If

    If Casa = 8 Then
        For f = 7 To 9 'busqueda por filas
              For c = 4 To 6
                If Sud(f, c) = Valor Then
                 Encontrar = True
                 Exit Function
                End If
              Next
        Next
    End If

    If Casa = 9 Then
        For f = 7 To 9 'busqueda por filas
              For c = 7 To 9
                If Sud(f, c) = Valor Then
                 Encontrar = True
                 Exit Function
                End If
              Next
        Next
    End If


End Function

'procedimiento que simplemente coloca un valor en el Flex Grid
Private Sub Colocar(Fila As Byte, Columna As Byte, Valor As Byte)
Dim a As Byte, b As Byte
Dim fila1 As Integer
With H1
.TextMatrix(Fila - 1, Columna - 1) = .TextMatrix(Fila - 1, Columna - 1) & Valor
End With
End Sub


'iniciamos la busqueda de candidatos
Private Sub BuscarCandidatos(Casa As Byte, ValorBuscadoEnLaCasa As Byte)
Dim f1 As Byte
Dim f2 As Byte
Dim c1 As Byte
Dim c2 As Byte

'establemos las coordenadas para cada region o casa
Select Case Casa

Case 1:
  f1 = 1
  f2 = 3
  c1 = 1
  c2 = 3
 
Case 2:
  f1 = 1
  f2 = 3
  c1 = 4
  c2 = 6

Case 3:
  f1 = 1
  f2 = 3
  c1 = 7
  c2 = 9
 
Case 4:
  f1 = 4
  f2 = 6
  c1 = 1
  c2 = 3
 
Case 5:
  f1 = 4
  f2 = 6
  c1 = 4
  c2 = 6
 
Case 6:
  f1 = 4
  f2 = 6
  c1 = 7
  c2 = 9
 
Case 7:
  f1 = 7
  f2 = 9
  c1 = 1
  c2 = 3
 
Case 8:
  f1 = 7
  f2 = 9
  c1 = 4
  c2 = 6

Case 9:
  f1 = 7
  f2 = 9
  c1 = 7
  c2 = 9

End Select

Dim f As Byte
Dim c As Byte


     If Encontrar(Casa, ValorBuscadoEnLaCasa) = False Then 'si el valor buscado no es un numero FIJO
         
        For f = f1 To f2 'busqueda por filas
              For c = c1 To c2
                      If Sud(f, c) = 0 Then 'si esta vacio entonces alli debemos poner un candidato
                            'para que sea candidato, no debe estar ni en la fila ni en la columna (mucho menos en la region o casa)
                            If BuscarFila(f, ValorBuscadoEnLaCasa) = False And BuscarColumna(c, ValorBuscadoEnLaCasa) = False Then
                              Colocar f, c, ValorBuscadoEnLaCasa 'de ser asi entonces se considera como candidato
                            End If
                      End If
              Next
        Next
       
     End If
End Sub

Private Sub Form_Load()
Dim f As Byte, c As Byte
For f = 0 To 8
H1.RowHeight(f) = 700
Next
For f = 0 To 8
H1.ColWidth(f) = 700
Next
End Sub



El sudoku propuesto: (Boton Iniciar Sudoku)


El sudoku propuesto con todos sus candidatos: (Boton Encontrar Candidatos)