elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Duda problema para guardar archivo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda problema para guardar archivo  (Leído 1,653 veces)
musicaward

Desconectado Desconectado

Mensajes: 25



Ver Perfil WWW
Duda problema para guardar archivo
« en: 18 Enero 2009, 23:41 pm »

OTra vez molestandolos...  :rolleyes:

Tengo el siguiente... codigo la funcion es para descargar usando un command button , 1  progressbar y un label  para el porcentaje de la descarga y un control inet ,    pero mi problema es en la siguiente linea:

Citar
Open App.Path + "\WarezP2P_DLC.exe" For Binary Access Write As #1

por defecto lo guarda en la ruta donde esta el programa.. como hacer para que guarde.. por ejemplo en :

Citar
C:\WarezP2P_DLC.exe


el codigo es este:


Citar
Private Sub Command1_Click()
ProgressBar1.Value = 0
Inet1.AccessType = icUseDefault
Inet1.URL = "http://download.warezclient.com/WarezP2P_DLC.exe"
Inet1.Execute , "GET" 'Indicamos que vamos a descargar o recuperar un _
archivo desde una url
End Sub

Private Sub Form_Load()

End Sub

Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim vtData As Variant 'acá almacenamos los datos

Select Case State

Case icResponseCompleted
Dim bDone As Boolean: bDone = False
Dim tempArray() As Byte ' Un array para grabar los datos en un archivo
'Para saber el tamaño del fichero en bytes
filesize = Inet1.GetHeader("Content-length")
'Establecemos el Max del = a al tamaño del archivo
ProgressBar1.Max = filesize
contenttype = Inet1.GetHeader("Content-type")
'Creamos y abrimos un nuevo archivo en modo binario
Open App.Path + "\WarezP2P_DLC.exe" For Binary Access Write As #1

' Leemos de a 1 Kbytes. El segundo parámetro indica _
el tipo de fichero. Tipo texto o tipo Binario, en este caso _
binario
vtData = Inet1.GetChunk(1024, icByteArray)

DoEvents
'Si el tamaño del fichero es 0 ponemos bDone en True para que no _
entre en el bucle
If Len(vtData) = 0 Then
bDone = True
End If

Do While Not bDone
'Almacenamos en un array el contenido del archivo
tempArray = vtData
'Escribimos el archivo en disco
Put #1, , tempArray
'Aumentamos la barra
ProgressBar1.Value = ProgressBar1.Value + Len(vtData) * 2
' Leemos de pedazos de a 1 kb (1024 bytes)
vtData = Inet1.GetChunk(1024, icByteArray)
DoEvents
 Label1 = CLng((ProgressBar1.Value * 100) / ProgressBar1.Max) & " %"



If Len(vtData) = 0 Then
bDone = True

End If
Loop

Close #1
ProgressBar1.Value = 0

End Select
End Sub



un gracias de antemano por leer el mensaje..


« Última modificación: 18 Enero 2009, 23:42 pm por musicaward » En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Duda problema para guardar archivo
« Respuesta #1 en: 18 Enero 2009, 23:43 pm »

recomiendo leer un manual de visual basic...

Código
  1. Open "C:\WarezP2P_DLC.exe" For Binary Access Write As #1


En línea

byway

Desconectado Desconectado

Mensajes: 181


^^,


Ver Perfil
Re: Duda problema para guardar archivo
« Respuesta #2 en: 19 Enero 2009, 01:50 am »

eso si quieres que la ruta de descarga sea fija ... pero si quisieras cambiarlo podrias usar el codigo siguiente, usando un boton para poder llamar al cuadro de buscar una carpeta y poner la ruta selecionada en un textbox:


Código
  1. ' Estructura BrowseInfo requerida para el Api SHBrowseForFolder
  2. Private Type BrowseInfo
  3.    hWndOwner As Long
  4.    pIDLRoot As Long
  5.    pszDisplayName As Long
  6.    lpszTitle As Long
  7.    ulFlags As Long
  8.    lpfnCallback As Long
  9.    lParam As Long
  10.    iImage As Long
  11. End Type
  12.  
  13. ' Constantes
  14. Const BIF_RETURNONLYFSDIRS = 1
  15. Const MAX_PATH = 260 ' Para Buffer de caracteres del path
  16.  
  17. ' Funcion Api CoTaskMemFree
  18. Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
  19.  
  20. ' Funcion Api CoTaskMemFree lstrcat
  21. Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" ( _
  22.    ByVal lpString1 As String, _
  23.    ByVal lpString2 As String) As Long
  24.  
  25. ' Funcion Api SHBrowseForFolder
  26. Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
  27.  
  28. ' Funcion Api SHGetPathFromIDList
  29. Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList _
  30. As Long, ByVal lpBuffer As String) As Long
  31.  
  32. Private Sub Command1_Click()
  33. Dim Ret As Long
  34. Dim sPath As String
  35. Dim tBI As BrowseInfo
  36.  
  37.    With tBI
  38.        .hWndOwner = Me.hwnd
  39.        .lpszTitle = lstrcat("Selecione una carpeta", "")
  40.        .ulFlags = BIF_RETURNONLYFSDIRS Or 64
  41.  
  42.    End With
  43.  
  44.    'Mostrar el cuadro de dialogo Buscar carpeta
  45.    Ret = SHBrowseForFolder(tBI)
  46.  
  47.    If Ret Then
  48.  
  49.        sPath = String$(MAX_PATH, 0)
  50.        Call SHGetPathFromIDList(Ret, sPath)
  51.        Call CoTaskMemFree(Ret)
  52.  
  53.        Dim pos As Long
  54.        pos = InStr(sPath, vbNullChar)
  55.  
  56.        If pos Then
  57.            sPath = Left$(sPath, pos - 1)
  58.        End If
  59.    End If
  60.  
  61.    'Mostramos el Path elegido en el textbox
  62.    Text1.Text = sPath
  63.  
  64. End Sub
  65.  
  66.  

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema para guardar cadenas
Programación C/C++
psycho248 3 1,944 Último mensaje 19 Enero 2014, 15:53 pm
por psycho248
problema (duda) al guardar un espacio en archivos c++
Programación C/C++
Pancho_Ibarra 0 2,194 Último mensaje 6 Diciembre 2017, 04:46 am
por Pancho_Ibarra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines