Red de conocimiento informático - Problemas con los teléfonos móviles - Programación Vb 2024

Programación Vb 2024

¿No entiendo a qué te refieres con desbordamiento de archivos?

Hice un archivo de texto "F.txt" de 34, 857, 424 bytes.

Pon un botón de comando Command1 en el formulario, el código es el siguiente.

Subcomando privado 1_Click()

Dim DAT() As Byte 'Almacena los datos leídos del archivo original.

Almacena el identificador del archivo como una cadena.

"Cambiar el tamaño del archivo a longitud de archivo larga"

Dim TouDAT (2655) almacena el encabezado del archivo en bytes.

Dim MyT2(865, 243) As Byte 'Define una matriz bidimensional para almacenar el encabezado de cada segmento.

Dimmydat (865, 10000, 3) como byte 'define una matriz tridimensional para almacenar cada párrafo, lo que puede entenderse como la definición de 866 matrices bidimensionales, cada matriz bidimensional tiene 10001 filas y 4 columnas.

Dim n As Long

Dim J es un número entero

Marcar K como un número entero

Dim n As Long

Dim OutDAT() As Byte 'Almacena la salida de datos en el archivo de destino.

Nombre de archivo=aplicación. Caminos y caminos. " \F.txt " 'Supongamos que el archivo original se llama F.txt.

FileSize = FileLen(FileName)' para obtener la longitud del archivo.

ReDim DAT (tamaño de archivo - 1) como bytes

Leer datos del archivo

Abrir archivo binario con nombre de archivo como #1

Obtener #1,DAT

Cerrar

Almacena el encabezado del archivo en la matriz TouDAT.

Para i = 0 a 2655

TouDAT(i) = DAT(i)

A continuación,

obtengo cada dato y guárdelo en una matriz.

Para i = 0 a 865

Almacena el título de cada párrafo en el array MyT2.

Para J = 0 a 243

MyT2(i, J) = DAT(2656 i * 40248 J)

Siguiente J

Almacenar los 40004 bytes de cada segmento en el array MyDAT.

n = 2656 i * 40248 244

Para J = 0 a 10000

Para K = 0 a 3

MiDAT(i , J, K) = DAT(n)

n = n 1

Siguiente K

Siguiente J

Siguiente I

comience a fusionar los datos que se generarán.

Calcule el número de bytes en el nuevo archivo

Debería ser: 2656 866*(244 5000*4) bytes, porque incluso 10001 líneas son solo 5000 líneas, cada línea 4 bytes.

'****************************************** ************************************************** * ********

Es muy importante escribir dos líneas aquí. Si escribe una línea, se desbordará.

n = 20244

n = n * 866 2656

O escribe así:

n = CLng(866) * 20244 2656

'****************************************** * ************************************************* ** ********

ReDim outdate(n-1) como bytes

Fusionar en el encabezado del archivo

Para i = 0 a 2655

OutDAT(i) = TouDAT(i)

A continuación,

integro cada dato

Para i = 0 a 4

Fusionar encabezados de párrafos en OutDAT.

Para J = 0 a 243

OutDAT(2656 i * 20244 J) = MyT2(i, J)

Siguiente J

Almacenar los 40004 bytes de cada segmento en el array MyDAT.

n = 2656 i * 20244 244

Para J = 1 a 10000 Paso 2

Para K = 0 a 3

OutDAT (n) = MyDAT(i, J, K)

n = n 1

Siguiente K

Siguiente J

Siguiente I

nombre de archivo=aplicación. Caminos y caminos. " \New.txt " 'Supongamos que los resultados se escriben en el archivo New.txt.

Leer datos del archivo

Abrir el nombre del archivo binario como #1

Actualizar #1,,

Cerrar

Conector final

La operación pasó y el número de bytes en el archivo de resultados es 2656 866 * (244 5000 * 4) = 17533960 bytes.