* * *

Author Topic: Abrindo multiplos arquivos binarios  (Read 1671 times)

croto

  • New member
  • *
  • Posts: 9
Abrindo multiplos arquivos binarios
« on: November 01, 2016, 12:24:03 am »
Boa noite galera,

seguinte, eu estou querendo abrir 6 arquivos binarios de uma só vez, organizados como um array de 65535 bytes. A ideia é ir indice por indice, analisar se o primeiro e o segundo arquivos estao abaixo de um certo valor selecionado pelo usuario e mostrar os valores do indice atual dos ultimos quatro arquivos na tela.

Code: Pascal  [Select]
  1. // Cria estrutura do arquivo - Necessario?
  2. type FileStruct = packed record
  3.     ImgFile : array [0..65535] of Byte;
  4. end;
  5.  
  6. var
  7.   Bgnd1Cam1       : FileStruct; // Variavel para Imagem 1
  8.   BGND1File       : File of FileStruct;   //Arquivo a ser aberto
  9.  
  10. procedure TForm1.Button1Click(Sender: TObject);
  11. var Filename              : string;
  12.  
  13. begin
  14.       //Usa opendialog pra abrir arquivo
  15.       OpenDialog1.Title := 'OPEN CAMERA IMAGE';
  16.       OpenDialog1.Filter := 'RAWDATA files (*.rawdata)|*.rawdata'; //Filtra por tipo de arquivo
  17.  
  18.  if OpenDialog1.Execute then
  19.         Filename := OpenDialog1.FileName; // Grava o nome do arquivo na variavel
  20.  
  21.       If Filename<>'' then // Se o nome do arquivo nao é vazio
  22.         begin
  23.  
  24.         AssignFile(BGND1File,FileName); //Da o nome ao arquivo
  25.  
  26.          reset(BGND1File);// Abre arquivo pra leitura
  27.  
  28.          // Le ate o final do arquivo
  29.          while not eof(BGND1File) do
  30.          begin
  31.            Read(Bgnd1Cam1,BGND1File); //Le do arquivo para a variavel
  32.          end;
  33.          closefile(BGND1File);  //Fecha arquivo
  34.  
  35.  
Não colei o codigo inteiro, porém já essa parte não esta funcionando, estou recebendo a seguinte mensagem de erro:

Code: Pascal  [Select]
  1. unit1.pas(125,26) Error: Can't read or write variables of this type

O que estou fazendo de errado? Obrigado pela ajuda pessoal!

Att,
croto
« Last Edit: November 01, 2016, 12:33:41 am by croto »

molly

  • Hero Member
  • *****
  • Posts: 1612
Re: Abrindo multiplos arquivos binarios
« Reply #1 on: November 01, 2016, 12:34:40 am »
sorry, my portugese is non-existent  :-[

Code: Pascal  [Select]
  1.            Read(Bgnd1Cam1,BGND1File); //Le do arquivo para a variavel
  2.  
Code: Pascal  [Select]
  1. unit1.pas(125,26) Error: Can't read or write variables of this type
should read:
Code: Pascal  [Select]
  1.            Read(BGND1File, Bgnd1Cam1); //Le do arquivo para a variavel
  2.  

croto

  • New member
  • *
  • Posts: 9
Re: Abrindo multiplos arquivos binarios
« Reply #2 on: November 01, 2016, 07:34:51 pm »
Hey @molly, thanks for the help!!!

I have tried what you suggested, I don't get the same error anymore, BUT when I try to do this:

Code: Pascal  [Select]
  1. CurrentBgnd1Cam1 := Bgnd1Cam1[ImageIndex];

I get the following error:

Code: Pascal  [Select]
  1. unit1.pas(144,41) Error: No default property available

CurrentBgnd1Cam1 is an integer by the way.

Thanks again.

Cheers,
croto
« Last Edit: November 01, 2016, 08:17:10 pm by croto »

croto

  • New member
  • *
  • Posts: 9
Re: Abrindo multiplos arquivos binarios
« Reply #3 on: November 04, 2016, 12:41:02 am »
O código ficou assim:
Code: Pascal  [Select]
  1.     if OpenDialog1.Execute then
  2.       Filename := OpenDialog1.FileName;
  3.  
  4.       If Filename<>'' then
  5.         begin
  6.  
  7.           AssignFile(BGND1File,FileName);
  8.           reset(BGND1File);
  9.           // Keep reading lines until the end of the file is reached
  10.           while not eof(BGND1File) do
  11.           begin
  12.              Read(BGND1File,Bgnd1Cam1);
  13.           end;
  14.  
  15.           closefile(BGND1File);
  16.         end;      
  17.  

E pra acessar o conteúdo da variável:

Code: Pascal  [Select]
  1. Test := Bgnd1Cam1.ImgFile[ImageIndex];
  2.  

agora funciona... Obrigado @molly pela ajuda!
« Last Edit: November 04, 2016, 12:43:21 am by croto »

 

Recent

Get Lazarus at SourceForge.net. Fast, secure and Free Open Source software downloads Open Hub project report for Lazarus