⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readilda.pas

📁 ilda file player and converter ilda to hex files for delphi 7
💻 PAS
字号:
unit ReadIlda;

interface

uses Classes;

type
  TReadIldaFormat = class(TThread)
  private
    { Private declarations }
    FileName:String;
    LoadIndex:Integer;
    Counter  :Integer;
    Procedure RefreshForm;
  protected
    procedure Execute; override;
  published
    constructor CreateIt(FName:String);
    destructor Destroy; override;
  end;

implementation
uses Unit1, DataUnit,Sysutils;

Procedure TReadIldaFormat.RefreshForm;
Begin
  Form1.Refresh;
End;

constructor TReadIldaFormat.CreateIt(FName:String);
Begin
  inherited Create(True);      // Create thread suspended
  FileName:=FName;
  Suspended := false;          // Continue the thread
End;

destructor TReadIldaFormat.Destroy;
Begin
   inherited destroy;
End;

procedure TReadIldaFormat.Execute;
Var
 f:File;
 Ild:array[0..3] of char;
 Btt:Byte;
 Btt1:array [0..1] of Byte;
 Wrd:Word;
 D3_D2:Integer;
 FrameName:array[0..7] of char;
 CompanyName:Array[0..7] of char;
 i:integer;
 NPoints:Word;
 Eee:Integer;
begin
  { Place thread code here }
 LoadIndex:=0;
 Counter:=0;
 MyShow.CountPoints:=0;
 AssignFile(F,Filename);
 FileMode := 0;
 Reset(F,1);
 Repeat
   BlockRead(f,Ild,4);
   if Ild='ILDA' Then
   Begin
     BlockRead(f,D3_D2,3);
     BlockRead(f,D3_D2,1);
     if (D3_D2 and $FF)=0 Then    //3d
     Begin
       BlockRead(f,FrameName,8);
       BlockRead(f,CompanyName,8);
       BlockRead(f,Btt1,2);   //nr point
       TTransfer(NPoints)[0]:=Btt1[1];
       TTransfer(NPoints)[1]:=Btt1[0];
       if NPoints=0 Then Break;
       BlockRead(f,Btt1,2);    // Frame number
       BlockRead(f,Btt1,2);    // Nr of frames
       BlockRead(f,Btt1,2);    //Scanner head
       SetLength(Data,NPoints);   //data=2d
       BlockRead(F,Data[0],NPoints*8,Eee);
       if Eee<>(NPoints*8) Then Break;
       TransferToMyOwnFormat (NPoints);
       Counter:=Counter+1;
       if Counter mod 15 =0 Then
     End
     Else
     Begin    //2d
       BlockRead(f,FrameName,8);
       BlockRead(f,CompanyName,8);
       BlockRead(f,Btt1,2);
       TTransfer(NPoints)[0]:=Btt1[1];
       TTransfer(NPoints)[1]:=Btt1[0];
       if NPoints=0 Then Break;
       BlockRead(f,Btt1,2);
       BlockRead(f,Btt1,2);
       BlockRead(f,Btt1,2);
       SetLength(Data1,NPoints);   //data1 = 3d
       BlockRead(F,Data1[0],NPoints*6,Eee);
       if Eee<>(NPoints*6) Then Break;
       Transfer3DToMyOwnFormat (NPoints);
       Counter:=Counter+1;
       if Counter mod 15 =0 Then
     End;
   End
   Else Seek(F,FilePos(F)-3);
 until Eof(F);
 CloseFile(F);
 ShowFileName:=ExtractFileName(FileName);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -