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.