Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/05/2005, 03:03
MaxExtreme
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 1 mes
Puntos: 17
Cita:
Iniciado por Jad-Neo
Estas instrucciones ya se las había dado a VisualGuayavo:

Function CargarArch (Dir As String) As String
Static tmpStr$, Bytes As Byte, fNum%, i&
fNum = FreeFile(2)
Open Dir For Binary Access Read As #fNum
For i = 1 To FileLen (Dir)
Get #fNum, i, Bytes
tmpStr = tmpStr & ChrB (Bytes)
DoEvents
Next i
CargarArch = tmpStr
End Function

Esta funcion te devuelve la matriz de bytes del archivo que especifiques en Dir. No intentes poner la matriz en un TextBox porque no te aparecerían varios caractéres. Si no te funciona mandame un mensaje privado para ver que pasa. No leemos.

NOTA: Si el archivo es de 500 KB o más, se puede tardar bastante.
Tardará bastante porque no son maneras... Un tipo "string" de VB es realmente un vector de bytes dinámico. Cada vez que añades un byte (o sea lo haces 500 * 1024 = 512000 veces), tiene que alojar memoria para ello (no sé exactamente su sistema). Y como has dicho, abriendo archivos más o menos grandes te puedes morir...

En cambio, así hace lo que pides y instantáneo:

Código:
Type Fichero
    Datos() As Byte
    Tamaño As Long
End Type

Function CargarFichero(ByVal Ruta As String) As Fichero
    Dim Datos_() As Byte
    Dim Tamaño_ As Long
    
    Dim fd As Integer
    fd = FreeFile
    
    Open Ruta For Binary Access Read As #fd
    Tamaño_ = FileLen(Ruta)
    ReDim Datos_(Tamaño_)
    Get #fd, , Datos_()
    Close #fd
    
    CargarFichero.Datos = Datos_
    CargarFichero.Tamaño = Tamaño_
End Function
Lo metes en un módulo y a volar. Crea un fichero que ocupe un mega o más y pruébalo con:

Código:
Dim Ejemplo As Fichero

Ejemplo = CargarFichero("C:\Adios.txt")

MsgBox "Ya está, ¿rápido?"
Verás que la carga es instantánea.