[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 311
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
- ¿Es posible averiguar el número de elementos de una matriz en un archivo? ¿Cómo evitar acciones innecesarias en este caso en general?
FileSize(handle) dividido por el tamaño del elemento = número de elementos?
FileSize(handle) dividido por el tamaño del elemento = número de elementos?
¿Es una suposición?
¿Cómo se sabe el tamaño de un elemento en un archivo binario? ¿Quizás alguna parte esté ocupada por más elementos?
Si se establece un recuento demasiado alto, se obtienen muchos valores nulos (¿verdad?)
La documentación parece decir
¿Es una suposición?
¿Cómo se sabe el tamaño de un elemento en un archivo binario? ¿Quizás alguna parte esté ocupada por algo más que los elementos?
El tamaño de un artículo depende de lo que escriba allí, ya sea 4 u 8. ¿Cómo es su proceso de escritura?
La documentación parece decir
Si un archivo tiene 1000 elementos y count=20, en realidad leerá 20.
¿Pero qué pasa si count=5000?
No está claro lo que quieren decir con "Antes de leer los datos el array debe tener un tamaño suficiente" - sería más fácil leer todos los elementos en el array por número de elementos, y luego si es necesario se puede truncar el array, etc.
El tamaño del artículo depende de lo que escriba allí, ya sea 4 u 8. ¿Cómo es su proceso de escritura?
que utilizo (la escritura y la lectura son dos pasos independientes):
que utilizo (la escritura y la lectura son dos pasos independientes):
La función escribe la matriz en un archivo binario. Las matrices como int, bool, datetime y color se escriben como 4 bytes enteros. Las matrices de tipo double se escriben como números de punto flotante. 8 bytes números de punto flotante.
He resumido lo que necesitas saber. Si se escribió una matriz de dobles en el archivo, dividiendo el tamaño del archivo por 8 se obtendrá el número de elementos de la matriz en el archivo.
La función escribe la matriz en un archivo binario. Las matrices como int, bool, datetime y color se escriben elemento por elemento como 4 bytes enteros. Las matrices de tipo double se escriben como números de punto flotante. 8 bytes números de punto flotante.
He resaltado lo que necesitas saber. Si se escribió un doble de matriz en un archivo, dividiendo el tamaño del archivo por 8 se obtendrá el número de elementos de la matriz en el archivo.
Ahora abrí un archivo guardado en un visor de texto - esto es lo que parece:
Parece que tiene unos 50 elementos (debería haber más o menos ese número de elementos), pero su tamaño es de 2432 bytes. Al parecer, almacena "espacios en blanco" en él.