• Sábado 18 de Mayo de 2024, 12:28

Mostrar Mensajes

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


Mensajes - mamex

Páginas: 1 [2] 3 4
26
Pascal / Re: Porque No Funciona Esto? Deberia...
« en: Domingo 25 de Febrero de 2007, 19:22 »
Ok, es k talvez se cicle tu programa, depuralo bien, para ver si llega a ejecutarse hasta la linea donde se encuentra readkey.

Lo chekaré con calma.

27
C/C++ / Re: Reloj Checador
« en: Domingo 25 de Febrero de 2007, 00:14 »
Aporto mi idea   :smartass:
Código: Text
  1.  
  2. int horasTrabajadas,pagaCompleta;
  3. pagaCompleta = 47*6;// salario minimo por dias trabajados
  4.  
  5. printf("Horas que trabajó:  %d",horasTrabajadas);
  6. if (horasTrabajadas>=40)
  7.   printf("Total: $%d",pagaCompleta);
  8. else
  9.   printf("No te pagamos porque no trabajaste las 40 horas);
  10.  
  11.  

28
Pascal / Re: Porque No Funciona Esto? Deberia...
« en: Domingo 25 de Febrero de 2007, 00:09 »
Mira tu declaraste estas variables

Citar
//Rangos;
Ancho = 7; Alto = 8;
//Matriz de juego;
TTablero = Array[1..Alto,1..Ancho] Of TFicha;

Y despues recorres la matriz así:
Citar
Procedure InicializarTablero(Var Tablero:TTablero);
Var i,j:Integer;
Begin
For i:=1 To Ancho Do
    For j:=1 To Alto Do Tablero[i,j]:= '0';
End;

La primera dimensión que pones es i o sea ancho, pero la primera dimensión debiese ser j, o sea, alto. Entonces tu código debe estar así:


Código: Text
  1.  
  2. Procedure InicializarTablero(Var Tablero:TTablero);
  3. Var i,j:Integer;
  4. Begin
  5. For i:=1 To Alto Do
  6.     For j:=1 To Ancho Do Tablero[i,j]:= '0';
  7. End;
  8.  
  9.  

Espero estar en lo correcto    :whistling:

29
Visual Basic 6.0 e inferiores / Re: Ayuda Con Cuadros De Texto
« en: Sábado 24 de Febrero de 2007, 22:19 »
Pregunta 1.  Pues puedes hacerlo en el evento validate, ejemplo:

Código: Text
  1.  
  2. Private Sub Text1_Validate(Cancel As Boolean)
  3.     If Val(Text1.Text) < 0 Then
  4.         MsgBox "Numero menor a 0"
  5.     Else
  6.         MsgBox "No es un numero menor a 0, vuelva a escribirlo"
  7.         Cancel = True
  8.     End If
  9. End Sub
  10.  
  11.  

Pregunta 2.  Puedes meter el archivo en la carpeta donde se encuentra tu ejecutable (exe), y para llamarlo debes escribir:

Código: Text
  1.  
  2. app.path & "/" & nombreDeArchivo
  3.  
  4.  

Y esta será la ruta de tu archivo.

30
Visual Basic 6.0 e inferiores / Re: Sumar
« en: Sábado 24 de Febrero de 2007, 18:22 »
Aquí está una solución:

Código: Text
  1.  
  2. Private Function suma() As Integer
  3.     Dim i As Integer
  4.     For i = 0 To List1.ListCount - 1
  5.         suma = suma + List1.List(i)
  6.     Next i
  7. End Function
  8.  
  9.  

31
Bases de Datos / Re: Actualizar
« en: Sábado 24 de Febrero de 2007, 07:27 »
Claro que se puede. Te doy una idea:

Llamaré bdTemporal a la que te traigan de sus casas, y bdActual a la que tengan en el trabajo.

Deberás Recorrer todas las tablas de la bdTemporal y por cada registro, chekar si existe en la misma tabla de bdActual, en caso de k no exista, tendrás que crear un nuevo registro en la tabla de bdActual, igualito al de bdTemporal.

32
C# / Re: Añadir Un Numero De Licencia
« en: Miércoles 21 de Febrero de 2007, 19:12 »
Que tal, mira en realidad yo programo en visual basic 6, tengo mis codigos, pero no se si te puedan servir, en sí la idea, es que el número que te da la ventana de registro, es un número aleatorio, para ello ocupé este codigo.

Código: Text
  1.  
  2. 'Genera la clave que le aparece al usuario k va a instalar
  3. Public Function generaId() As String
  4.     Dim i As Integer
  5.     Dim id As String
  6.     id = ""
  7.     For i = 1 To 4
  8.         id = id & Format(Rand(0, 9999), "0000")
  9.         If i < 4 Then id = id + " - "
  10.     Next i
  11.     generaId = id
  12. End Function
  13.  
  14.  

Ese es el número que te da el programa, cada vez que se abre el programa te dá un número distinto, ya que es aleatorio.

Ahora sólo tienes que hacer un algoritmo que éste numero aleatorio te lo convierta a otra clave, que será la que tengas que escribir manualmente. Por ejemplo, lo más sencillo es hacer, el recorrido de una letra o número del original. Ejemplo:    si la ventana te da la clave 23D, la clave que le corresponde es  34E, porque en cada digito se recorrió un caracter.

Yo ocupé otra función, pero está algo larga y hecha en vb.

Para leer y escribir en el registro de windows usé éstas funciones, te repito en Visual basic.

Código: Text
  1.  
  2. 'Escribe un valor en el registro de windows
  3. Public Sub escribirRegistro(direccion As String, Llave As String, datos As String, Optional tipo As String)
  4.     Dim Registro As Object
  5.     'Crea el objeto manejador del registro
  6.     Set Registro = CreateObject("WScript.Shell")
  7.     If tipo <> "" Then
  8.         Registro.RegWrite direccion & "\" & Llave, datos, tipo
  9.     Else
  10.         Registro.RegWrite direccion & "\" & Llave, datos
  11.     End If
  12.     Set Registro = Nothing
  13. End Sub
  14.  
  15. 'Lee un valor del registro de windows
  16. Public Function leerRegistro(direccion As String, Llave As String) As String
  17.     On Error GoTo mError
  18.     Dim Registro As Object
  19.     'Crea el objeto manejador del registro
  20.     Set Registro = CreateObject("WScript.Shell")
  21.     leerRegistro = Registro.regread(direccion & "\" & Llave)
  22.     Set Registro = Nothing
  23.     Exit Function
  24. mError:
  25.     If Err.Number = -2147024894 Then leerRegistro = ""
  26. End Function
  27.  
  28.  

Si gustas agregame al msn.

33
C# / Re: Añadir Un Numero De Licencia
« en: Miércoles 21 de Febrero de 2007, 18:24 »
Que tal, mira yo hice algo así, lo que hago es que la primera vez que se abre el programa, pide los datos de registro, (nombre, empresa, no. de Serie), y éstos datos los guarda en el registro de windows. Y cada vez que se abre el programa, comprueba si éstos datos existen en el registro de windows, si existen, pues simplemente abre el programa, si no existen (se deduce que es la primera vez k se abrió) y pues se pide que se introduzcan los datos de registro.

Para registrar, te aparece un número de serie, y con ése número se genera otro (que es el que debes de escribir tú para que se te acepte).

Bueno, pero la cuestión es: ¿De dónde saco el no de Serie?. Pues yo hice un algoritmo sencillo para que apartir de una clave (el número que te aparece en el registro), te genere otra clave (es la que el usuario deberá escribir).

Ejemplo,   en la ventana de registro al usuario le aparecerá la clave  AB12C (por ejemplo),  entonces el te llama y te dá esa clave, entonces tu con tu algoritmo, le metes esa clave y te debe generar otra,  1423F por ejemplo, entonces tu le das esta al usuario, y el la introduce en el formulario de registro. Espero que me hayas entendido.

Adjunto la imagen del form. Cualquier cosa que no entiendas, aqui estamos para ayudarte.  :hola:

34
Visual Basic 6.0 e inferiores / Re: Msflexgrid
« en: Lunes 19 de Febrero de 2007, 18:48 »
Hola, que tal, mira realmente no entendí 100% tu mensaje, ¿podrías ser más claro para que podamos ayudarte?

Saludos.

35
Visual Basic 6.0 e inferiores / Re: Problemilla
« en: Sábado 17 de Febrero de 2007, 18:05 »
Si, prueba la propiedad borderStyle del form, aunque creo que éste es otro tema pero en fin.

36
Visual Basic 6.0 e inferiores / Re: Datagrid Y Propiedad Bookmark
« en: Viernes 16 de Febrero de 2007, 21:51 »
Listo, ahora si ya lo chequé, y funciona de la siguiente manera

Código: Text
  1.  
  2. Dim checkRow As Long
  3. checkRow = gridConsultas.RowBookmark(gridConsultas.Row)
  4.  
  5.  

Te recomiendo que lo pongas como long, aunque puedas guardarlo en un integer.

Cualquier cosa, no dudes en preguntar nuevamente.

37
Visual Basic 6.0 e inferiores / Re: Datagrid Y Propiedad Bookmark
« en: Viernes 16 de Febrero de 2007, 17:17 »
No estoy en mi casa para chekarlo, pero al parecer te regresa un long, entonces tienes que declararlo como long, no como integer. Espero estar en lo correcto. Saludos

38
VBA / Re: Obtener Dia Anterior Y Nombre Del Dia
« en: Jueves 8 de Febrero de 2007, 07:05 »
Jejeje, en realidad no lo ocupé, pero me di cuenta después k lo puse. La función nombre día, le mandas el número del dia: lunes 1, martes 2, miercoles 3.

Pero lo que hace la función Day() es darme el número de la fecha, (ej. 23). Así que no sirve para obtener directamente que dia de la semana es, para eso necesito usar la función weekDay()

Pero bueno, pido disculpas por mi equivocación, y aqui está la funcion que debes modificar:

Código: Text
  1.  
  2. Public Function FechaEnTexto(fecha As String) As String
  3.    FechaEnTexto = NombreDia(Weekday(fecha, vbMonday)) & " " & Day(fecha) & _
  4.         " de " & NombreMes(Month(fecha)) & " del " & Year(fecha)
  5. End Function
  6.  
  7.  

39
VBA / Re: Obtener Dia Anterior Y Nombre Del Dia
« en: Jueves 8 de Febrero de 2007, 05:20 »
Aki tienes un ejemplo usando unas funciones mías:

Código: Text
  1.  
  2. Private Sub cmdCalcular_Click()
  3.     MsgBox FechaEnTexto(CDate(txtFecha.Text) - 1)
  4. End Sub
  5.  
  6. Public Function FechaEnTexto(fecha As String) As String
  7.     FechaEnTexto = Day(fecha) & " de " & NombreMes(Month(fecha)) & " del " & Year(fecha)
  8. End Function
  9.  
  10. Public Function NombreMes(mes As Integer) As String
  11.     Select Case mes
  12.         Case 1
  13.             NombreMes = "Enero"
  14.         Case 2
  15.             NombreMes = "Febrero"
  16.         Case 3
  17.             NombreMes = "Marzo"
  18.         Case 4
  19.             NombreMes = "Abril"
  20.         Case 5
  21.             NombreMes = "Mayo"
  22.         Case 6
  23.             NombreMes = "Junio"
  24.         Case 7
  25.             NombreMes = "Julio"
  26.         Case 8
  27.             NombreMes = "Agosto"
  28.         Case 9
  29.             NombreMes = "Septiembre"
  30.         Case 10
  31.             NombreMes = "Octubre"
  32.         Case 11
  33.             NombreMes = "Noviembre"
  34.         Case 12
  35.             NombreMes = "Diciembre"
  36.     End Select
  37. End Function
  38.  
  39. Public Function NombreDia(dia As Integer) As String
  40.     Select Case dia
  41.         Case 1
  42.             NombreDia = "Lunes"
  43.         Case 2
  44.             NombreDia = "Martes"
  45.         Case 3
  46.             NombreDia = "Miercoles"
  47.         Case 4
  48.             NombreDia = "Jueves"
  49.         Case 5
  50.             NombreDia = "Viernes"
  51.         Case 6
  52.             NombreDia = "Sabado"
  53.         Case 7
  54.             NombreDia = "Domingo"
  55.     End Select
  56. End Function
  57.  
  58.  

Cualquier duda, pues escribe de nuevo. Saludos

40
Pascal / Re: Floyd
« en: Sábado 3 de Febrero de 2007, 20:51 »
Que tal, mira yo lo hice en C, y traté de pasarlo a pascal, éste es el codigo k me kedó:

Código: Text
  1.  
  2. program prog;
  3. uses wincrt;
  4. var c,y,j,i,num:integer;
  5. begin
  6.   writeln('numero');
  7.   readln(num);
  8.   for i:=0 to num-1 do
  9.   begin
  10.     (*Tamaño del triangulo hasta antes de este renglon*)
  11.     tam = ((i+1)*i)/2;
  12.     for j:=0 to i do
  13.     begin
  14.       c=tam+(i+1-j);
  15.       write(c);
  16.     end;
  17.     writeln;
  18.   end;
  19. end.
  20.  
  21.  

Espero y esto te ayude   :hola:

41
Visual Basic 6.0 e inferiores / Re: Solo Numeros En Textbox
« en: Sábado 3 de Febrero de 2007, 19:53 »
Tu codigo debe ir así:
Código: Text
  1.  
  2. Private Sub Text1_KeyPress(KeyAscii As Integer)
  3.     Dim numeros As String
  4.     Dim v As Integer
  5.     numeros = Chr(KeyAscii)
  6.     v = InStr(1, "1234567890", numeros)
  7.     If v = 0 Then
  8.         KeyAscii = 0
  9.     End If
  10. End Sub
  11.  
  12.  


Pero bueno te recomiendo usar estas funciones que yo diseñé, ya que el codigo anterior no te permite usar numeros fraccionaros (con punto decimal), ni la teclas de backspace

Código: Text
  1.  
  2. Public Function validarNumeros(KeyAscii As Integer) As Integer
  3.     If EsNumero(Chr(KeyAscii)) Or KeyAscii = 8 Or KeyAscii = Asc(".") Then
  4.         validarNumeros = KeyAscii
  5.     Else
  6.         validarNumeros = 0
  7.     End If
  8. End Function
  9.  
  10. Public Function validarNumerosEnteros(KeyAscii As Integer)
  11.     If KeyAscii <> Asc(".") Then _
  12.         validarNumerosEnteros = validarNumeros(KeyAscii)
  13. End Function
  14.  
  15. 'Te dice si un parametro es un numero
  16. Public Function EsNumero(num As String) As Boolean
  17.     If Trim(num) <> "" Then
  18.         If IsNumeric(num) Or Asc(num) = 8 Then EsNumero = True
  19.     End If
  20. End Function
  21.  
  22.  

Y para ocupar éstas funciones tienes k poner el siguiente codigo en el evento keypress del text
Código: Text
  1.  
  2. Private Sub Text1_KeyPress(KeyAscii As Integer)
  3.     KeyAscii = validarNumerosEnteros(KeyAscii)
  4.     'Si kieres poder meter numeros decimales
  5.     'KeyAscii = validarNumeros(KeyAscii)
  6. End Sub
  7.  
  8.  

42
Pascal / Re: Pequeña Ayudadita (recursividad)
« en: Viernes 2 de Febrero de 2007, 20:18 »
Pues no se usar pascal, pero mi lógica me indica que debe ser así
Me imagino k max es la longitud del arreglo de strings.

Código: Text
  1.  
  2. procedure impcad(i:integer);
  3. var x:integer;
  4. begin
  5.    x:=length(fr[i]);
  6.    if i<=max then
  7.    begin
  8.          if  fr[i][x] = '.' then
  9.             begin
  10.                writeln(fr[i])
  11.                impcad(i+1);
  12.             end
  13.          else
  14.                impcad(i+1);  
  15.   end        
  16. end;
  17.  
  18.  

Espero poder ayudarte.

43
Visual Basic 6.0 e inferiores / Re: Primeros Pasos
« en: Viernes 2 de Febrero de 2007, 18:21 »
Pues si, como dijo napster tu consulta está mal, creo que debería ser más bien así:

Código: Text
  1.  
  2. sql = "select Pass_User from Usuarios where Pass_User = '" & Text2.Text & "'" & " and userName = '" & text1.text & "'"
  3.  
  4.  

Espero y ésto te ayude.

44
Visual Basic 6.0 e inferiores / Re: Trabajando El Regedit
« en: Viernes 2 de Febrero de 2007, 03:40 »
Que tal, yo lo dudo mucho, pero de que puedes guardar algo en el registro, si puedes, pero no exactamente un archivo, sino valores.

Deberias poner exactamente que tipo de información es la que quieres guardar, para poderte dar algunas ideas.
Saludos.

45
Visual Basic 6.0 e inferiores / Re: Abrir Web Autentificandote
« en: Miércoles 31 de Enero de 2007, 23:50 »
Ahhh , ya se me vino a la cabeza una idea, jeje, usa sendkeys, ya lo probé y si me funcionó

Código: Text
  1.  
  2. private sub abrirRouter()
  3.     Dim ie As Object
  4.     Set ie = CreateObject("InternetExplorer.Application")
  5.     ie.Visible = True
  6.     ie.Navigate "http://192.168.1.1"  'Aki va la direccion a abrir
  7.     delay 1   'Que se espere un segundo, en lo que abre la pagina
  8.     SendKeys "admin", 100  'Envia el usuario y se espera 100 milisegundos
  9.     SendKeys "{tab}"     'Se pasa al siguiente text
  10.     SendKeys "miclave"   'Envia la clave
  11.     SendKeys "{enter}"   'Da un enter para accesar
  12. end sub
  13.  
  14. 'Se espera un tiempo dado en segundos
  15. Public Sub delay(s As Single)
  16.     Dim T1 As Single
  17.     T1 = Timer
  18.     Do While T1 + s > Timer
  19.         DoEvents
  20.     Loop
  21. End Sub
  22.  
  23.  

Espero y te sirva

46
Visual Basic 6.0 e inferiores / Re: Abrir Web Autentificandote
« en: Miércoles 31 de Enero de 2007, 23:42 »
Pues mira, una idea, la verdad no se como se resuelva, pero se me hace muy parecido a los servers FTP, cuando tienen usuario y contraseña,
se hace lo siguiente:

ftp://usuario:password@direccionFtp

En tu caso seria

http://user:pass@192.168.1.20/goform/formApply

Donde user es tu usuario y pass es tu contraseña, pero la verdad no funciona, jejeje, te repito, es solo una idea que se me vino a la mente, que tal vez te pueda orientar.

47
Visual Basic 6.0 e inferiores / Re: Resolver Unos Ejercicios
« en: Miércoles 31 de Enero de 2007, 02:41 »
JAJAJAJAJAJA, que chistosin salió éste muchachito, ponte a estudiar flojo, y tan sikiera intenta hacerlos.

 :kicking:

48
Visual Basic 6.0 e inferiores / Re: Problema Con Datareport
« en: Lunes 22 de Enero de 2007, 18:00 »
Mira, como la hoja tamaño carta A4, tiene 21 cms de ancho.  Y un cm es aproximadamente equivalente a 550 twips.     (1cm = 550 twips)

Para calcular cuantos twips quieres de margen es:  cmDeMargen * 550 = twips de margen

Ejemplo,  si quieres un margen izquierdo y derecho de 1.5cm,   entonces multiplica 1.5cm * 550twips = 825twips.
Entonces leftmargin = 825 y rightmargin = 825,  como usaste 3cm de margen izquierdo y derecho, sólo te sobran 18 cm de la hoja.   (21cmDeHoja - 3cmDeMargen = 18cmLibres).
Entonces tu datareport debe ser de ancho a lo más 18cm.
Cualquier duda, puedes seguir preguntando.  
:hola:

49
Visual Basic 6.0 e inferiores / Re: Problema Con Datareport
« en: Sábado 20 de Enero de 2007, 22:40 »
Para manejar los margenes del datareport, puedes usar las propiedades leftmargin, topmargin, rightmargin, bottommargin.
Tienes que tener cuidado que tamaño de papel tienes configurado en la impresora, para que el ancho del reporte no exceda el ancho del papel.
Cuando yo uso la hoja A4, el ancho que me permite es de hasta 20 cm.

Espero te sirva esta info.

50
Visual Basic 6.0 e inferiores / Re: Se Me Ha Olvidado
« en: Miércoles 17 de Enero de 2007, 06:50 »
Ok, pues ya está fácil, si ocupas mi función lo harias de ésta manera:

Código: Text
  1.  
  2. Private Sub principal()
  3.     Dim elementos As Collection
  4.     Dim elem
  5.     Set elementos = separaElementosPorComa("10,11,120,13")
  6.     For Each elem In elementos
  7.          rutina (elem)
  8.     Next
  9. End Sub
  10.  
  11.  

OJO, al parecer me equivoqué en la línea
Citar
         inic = coma + 1
   Wend
   Set separaElementosPorComa = a
End Function

En vez de ser  
Código: Text
  1.  
  2.        inic = coma + 1
  3.  
  4.  
   
tiene que ser  
Código: Text
  1.  
  2.        inic = coma
  3.  
  4.  

Páginas: 1 [2] 3 4