[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 311
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
- É possível descobrir o número de elementos de um array em um arquivo? Como evitar ações desnecessárias neste caso em geral?
FileSize(handle) dividido pelo tamanho do elemento = número de elementos?
FileSize(handle) dividido pelo tamanho do item = número de itens?
Isto é uma suposição?
Como você sabe o tamanho de um item em um arquivo binário? Talvez alguma parte dela seja ocupada por mais do que apenas elementos?
Se a contagem for muito alta, você recebe muitos valores nulos (certo?)
A documentação parece dizer
Isto é uma suposição?
Como você sabe o tamanho de um item em um arquivo binário? Talvez alguma parte esteja ocupada por mais do que apenas os elementos?
O tamanho de um item depende do que você está escrevendo ali, seja 4 ou 8. Como é seu processo de escrita?
A documentação parece dizer
Se um arquivo tem 1000 elementos e conta=20, ele na verdade será 20.
Mas o que acontece se contar=5000?
Não está claro o que eles querem dizer com "Antes de ler os dados, a matriz deve ter tamanho suficiente" - seria mais fácil ler todos os elementos na matriz pelo número de elementos, e então, se necessário, você pode truncar a matriz, etc.
O tamanho do item depende do que você está escrevendo ali, seja 4 ou 8. Como é seu processo de escrita?
Eu uso (escrita e leitura são duas etapas independentes):
Eu uso (escrita e leitura são duas etapas independentes):
A função grava a matriz em um arquivo binário. Arrays como int, bool, datetime e cor são escritos como 4 bytes inteiros. As matrizes do tipo duplo são escritas como números de ponto flutuante. 8 bytes números de ponto flutuante.
Eu já descrevi o que você precisa saber. Se um array de duplas foi escrito no arquivo, então a divisão do tamanho do arquivo por 8 lhe dará o número de elementos do array no arquivo.
A função grava a matriz em um arquivo binário. Arrays como int, bool, datetime e cor são escritos elemento por elemento como 4 bytes inteiros. As matrizes do tipo duplo são escritas como números de ponto flutuante. 8 bytes números de ponto flutuante.
Destaquei o que você precisa saber. Se um array duplo foi escrito em um arquivo, então a divisão do tamanho do arquivo por 8 lhe dará o número de elementos do array no arquivo.
Agora abriu um arquivo salvo em um visualizador de texto - é assim que ele se parece:
Parece ter cerca de 50 elementos (deveria haver cerca de tantos elementos), mas seu tamanho é de 2432 bytes. Aparentemente, ele armazena "espaços em branco".