sábado, 30 de agosto de 2014

Settings.write y Settings.read

Buenas, para ver los cambios tienen que abrir y cerrar el formulario.


' gambas class file

'by postapase

Public Sub Form_Open()
Print Settings.Path
Settings.Read(Me) 'lee los datos antes guardados con el comando Settings.write
Settings["Blog/postapase"] = "http://novatocodegambas.blogspot.com/" 'ordena que hay que guardar este dato en el archivo
'Settings cuando se cierre el formulario.
Settings.Save ' guarda ya mismo el dato de la linea anterior
LeerArchivoSettings() 'llama a la subrutina que se encargara de leer el archivo Settings y mostrarlo en el TextArea
End


Public Sub by_Click()

Settings.Clear(Me.Name) 'ordena que hay que borrar solo la llave o key Me.name
'que equivale al nombre del formulario en este caso equivale a FMain, se guardara cuando el formulario principal sea cerrado,
'salvo que se ponga la line que viene abajo que ordena guardar inmediatamente.
Settings.Save ' guarda ya todos los datos que ordenaron guardar en el archivo settings
Wait 0.2 ' comando que hace un tiempo antes de ejecutar la linea siguiente.
LeerArchivoSettings() 'llama a la subrutina que se encargara de leer el archivo Settings y mostrarlo en el TextArea
End

Public Sub btnBorrarTodo_Click()
Settings.Clear ' 'ordena que hay que borrar todo el archivo Settings cuando se cierre el formulario principal
Settings.Save 'ejecuta ya mismo todas las ordenes pendientes sobre el archivo Settigns.
Wait 0.2 ' comando que hace un tiempo antes de ejecutar la linea siguiente.
LeerArchivoSettings() 'llama a la subrutina que se encargara de leer el archivo Settings y mostrarlo en el TextArea
End

Public Sub LeerArchivoSettings() 'rutina que se encargara de leer el archivo Settings y mostrarlo en el TextArea
Dim ArchivoSettings As File 'declaramos una variable de tipo archivo para poder leer los datos de un archivo
Dim LineaX As String 'variable de tipo string que contendra los dato de una linea del archivo que estemos leyendo
Dim RutaArchivoSettins As String 'variable de tipo string que contendra la ruta del archivo a leer

TextArea1.Clear 'borramos el textarea sino no visualizaremos los datos como corresponde
RutaArchivoSettins = Settings.Path 'asignamos la ruta del archivo al string

ArchivoSettings = Open RutaArchivoSettins For Read
'open abre un archivo x en la ruta especificada en este caso Settings.path ( )
'For Read indica que abre el archivo solo con intenciones de lectura

'while...wend (El bucle se repite mientras que la expresión es verdadera.)
'Eof devuelve TRUE si estamos al final de un Flujo. (en este caso un archivo)
While Not Eof(ArchivoSettings) 'si eof NO es true ejecute el bluce (comienzo del bluce)
' cuando Eof(ArchivoSettings) es true significa que llego al final del archivo y el bluce no se ejecuta mas
Line Input #ArchivoSettings, LineaX 'lee de a una linea el archivo
' y lo que hay en esa linea lo deposita en lineaX que es una variable de tipo String
TextArea1.Text &= LineaX & gb.NewLine 'va escribiendo en el textarea linea a linea pasando lo que hay en lineax, gb.NewLine es una constante equivalente a poner  LineaX & "\n"
Wend

End

Public Sub BtnGuardar_Click()
Settings.Write(Me) 'ordena que se guarden las coordenadas del FMain en este caso el formulario principal (me) cuando se cierre el formulario.
Settings.Save ' guarda ya todos los datos que ordenaron guardar en el archivo settings
LeerArchivoSettings() 'llama a la subrutina que se encargara de leer el archivo Settings y mostrarlo en el TextArea
End

Public Sub Form_Move() 'evento que sucede cuando movemos el formulario
LabX.Text = "(" & Me.X & ")"
LabY.Text = "(" & Me.y & ")"
End



Código fuente: Settings-write-read-0.0.1.tar.gz

jueves, 21 de agosto de 2014

Listado de recientes



' gambas class file

'por postapase

Private ArbitroRepetido As Boolean
Public AgregandoJueces As New String[]
Public listajueces As ListBox
Public lista As String[]

Public Sub Form_Open()
    listajueces = New ListBox(Me) As "listajueces"
    Me.Center
    With listajueces
       .ScrollBar = 3
       .Enabled = True
       .Visible = False
       .Width = txtArbitro.Width
       .Height = 100
       .x = txtArbitro.X
       .y = txtArbitro.y + txtArbitro.Height
    End With

    CargarArbitros()
End

Public Sub txtArbitro_Change()
  If Len(txtArbitro.Text) <0> 0 Then
     For x = 0 To AgregandoJueces.Count - 1
        If InStr(Left(UCase(AgregandoJueces[x]), Len(txtArbitro.Text)), UCase(txtArbitro.Text)) <> 0 Then
          listajueces.Visible = True
         Endif
      Next
 Endif

 For x = 0 To AgregandoJueces.Count - 1
     If InStr(Left(UCase(AgregandoJueces[x]), Len(txtArbitro.Text)), UCase(txtArbitro.Text)) <> 0 Then
        listajueces.Add(AgregandoJueces[x])
      Endif
 Next

End

Public Sub btnAgregarArbitro_Click()
  SErepiteArbitro(Trim$(txtArbitro.Text))
  If ArbitroRepetido = False Then
    AgregandoJueces.Add(Trim$(txtArbitro.Text))
    GuardarArbitros()
  Endif
  txtArbitro.Clear
  txtArbitro.SetFocus
End

Public Sub SErepiteArbitro(nombre As String)
  Dim itemArray As String

  If AgregandoJueces.Count <> 0 Then
      For Each itemArray In AgregandoJueces
         If itemArray = nombre Then
            ArbitroRepetido = True
         Else
            ArbitroRepetido = False
         Endif
      Next
  Else
    ArbitroRepetido = False
  Endif

End

Public Sub GuardarArbitros()
 Dim arbitro, ConjuntoArbitros As String
 For Each arbitro In AgregandoJueces
     ConjuntoArbitros &= arbitro & ","
 Next
 ConjuntoArbitros = Left(ConjuntoArbitros, Len(ConjuntoArbitros) - 1)
 Settings["ArbitrosRecientes/Lista"] = ConjuntoArbitros
 Settings.Save
End

Public Sub CargarArbitros()
  Dim lista As String
  lista = Settings["ArbitrosRecientes/Lista", ""]
  AgregandoJueces = Split(lista, ",")
 End

Código fuente:ListaJueces-0.0.1.tar.gz
                       ListaArbitros 0.0.2

miércoles, 20 de agosto de 2014

HallarNumeroMayorOmenor




' Gambas class file

' Escrito por postapase
' Creo que falta un complemento o un comando que ejecute esta función en gambas

Public ConjuntoNumeros As New Integer[]
Public HallarMaryorOmenor As String
Public ResultadoFinal As Integer

Public Sub _new()

End

Public Sub Form_Open()
Me.Center
End

Public Sub btnAgregarNumero_Click()
Dim numero As Integer
  If IsNull(TextBox1.Text) Then
    Message("ingrese un número por favor")
    Return
  Else
    ConjuntoNumeros.Add(Val(TextBox1.Text))
  Endif
  TextBox2.Text &= TextBox1.Text & ","
  TextBox1.Clear
  TextBox1.SetFocus
End

Public Sub Button2_Click()
  If rbtnMayor.Value = True Then
    HallarMaryorOmenor = "mayor"
  Else
    HallarMaryorOmenor = "menor"
  Endif
  CalcularMaxMin(ConjuntoNumeros, HallarMaryorOmenor)
  labResultado.Text = ResultadoFinal
End

Public Function CalcularMaxMin(numeros As Integer[], maxomin As String) As Integer
  Dim Resultados As New Integer[]
  Dim conteo, conteo2, NumActual, NumMenor As Integer
  Dim NumMayor As Integer = 0
   
  Resultados = numeros

  For conteo = 0 To numeros.Count - 1 Step 1
    If Resultados[conteo] > NumMayor Then
      NumActual = Resultados[conteo]
      NumMayor = NumActual
    Endif
  Next 

  NumMenor = NumMayor

  For conteo2 = 0 To numeros.Count - 1 Step 1
     If Resultados[conteo2] < NumMenor Then
       NumActual = Resultados[conteo2]
       NumMenor = NumActual
     Endif
  Next 

  If maxomin = "mayor" Then
    ResultadoFinal = NumMayor
    Return ResultadoFinal
  Else
    ResultadoFinal = NumMenor
    Return ResultadoFinal
  Endif
 
End

Public Sub TextBox1_Change()
  If Len(TextBox1.Text) = 3 Then btnAgregarNumero.SetFocus
End

Public Sub TextBox1_KeyPress()
   Select Case Key.Code
        Case 48 To 57
        Case 65456 To 65465
        Case Key.BackSpace
        Case Key.Left
        Case Key.Delete
        Case Key.Right
        Case Key.BackTab
        Case Key.Home
        Case Key.End
        Case Key.Tab
        Case Else
            Stop Event
      End Select
End




Código: HallarNumeroMayorOmenor-0.0.1.tar.gz

miércoles, 6 de agosto de 2014

RespaldaProyectos 0.0.1

Buenas gente, estoy empezando un nuevo proyecto que consiste en hacer respaldos automáticos de nuestros proyectos gambas simplemente dando la ruta de la carpeta del proyecto y el lugar donde queremos hacer el respaldo por ahora es manual intentare hacer automático mas adelante pero creo que es un programita útil super super liviano, la idea es que se ejecute con el sistema así puede hacer las copias según como las hayamos programado, si por día por hora o lo que fuera. por ahora es manual recién comienzo el proyecto.



' Gambas class file
' por postapase
Public CarpetaDeProyecto As String
Public LugarDErespaldo As String
 
Public Sub _new()

End

Public Sub Form_Open()
 Me.Center
 txtLugarProyecto.Text = Settings["CarpetasDEtrabajo/Proyecto", ""]
 txtLugarDondeRespaldar.Text = Settings["CarpetasDEtrabajo/LugarDeRespaldo", ""]
End

Public Sub Button1_Click()
 Dialog.Path = User.Home
 If Dialog.SelectDirectory() Then Return
 CarpetaDeProyecto = Dialog.Path
 txtLugarProyecto.Text = CarpetaDeProyecto
 Print CarpetaDeProyecto
End

Public Sub Button4_Click()
  Me.Close
End

Public Sub Button2_Click()
 Dialog.Path = User.Home
 If Dialog.SelectDirectory() Then Return
 LugarDErespaldo = Dialog.Path
 txtLugarDondeRespaldar.Text = LugarDErespaldo
End

Public Sub btnAplicar_Click()
  Settings["CarpetasDEtrabajo/Proyecto"] = CarpetaDeProyecto
  Settings["CarpetasDEtrabajo/LugarDeRespaldo"] = LugarDErespaldo
  Settings.Save
End

Public Sub btnRespaldar_Click()
 Dim TiempoRespaldo As Process
 Dim entrada As String
 Dim salida As String
 Dim carpetafecha As String
 
  entrada = Settings["CarpetasDEtrabajo/Proyecto", ""]
  salida = Settings["CarpetasDEtrabajo/LugarDeRespaldo", ""]

  carpetafecha = salida &/ Replace$(CString(Time), ":", "-")

  If Exist(salida) = True Then
    Mkdir carpetafecha
  Else
    Message("Carpeta destino no encontrada!")
  Endif

  TiempoRespaldo = Shell "cp -Rf " & entrada & " " & carpetafecha

End


Public Sub salir_Click()
  Me.Close
End

Public Sub Autor_Click()
  Autor1.ShowModal
End


RespaldaProyectos-0.0.1.tar.gz