Модуль "Flash_SHX" (часть 12) - SetCGCreateFile
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
от 07 декабря 2007 г.
procedure TfrmFlash_SHX.SetCGCreateFile(ACGStartAddr: TArrCGAddr; ACGStartAddrFName: TArrCGAddrFName; var AArrCGCreateFile: TArrCGCreateFile); var i, j, k: integer; xSize: integer; fHandle: integer; xBuffer: pbytearray; CRC: word; isCG0: boolean; CG0_idx: integer;
begin CG0_idx:= 255; isCG0:= false; for i:=0 to spSkinListView1.Items.Count-1 do begin j:= integer(spSkinListView1.Items[i].Data); //CG00: j=2 //CG01: j=3 //isCG0:= false; if j = 2 then begin isCG0:= true; CG0_idx:= j; end; if (j = 3) and isCG0 then AArrCGCreateFile[j].StartAddr:= ACGStartAddr[1, j-1] else AArrCGCreateFile[j].StartAddr:= ACGStartAddr[1, j]; AArrCGCreateFile[j].CGNumber:= j-2; AArrCGCreateFile[j].smgfilename:= ACGStartAddrFName[2, j]; fHandle:= FileOpen(AArrCGCreateFile[j].smgfilename, fmOpenRead or fmShareDenyNone); xSize:= GetFileSize(fHandle, nil); AArrCGCreateFile[j].smgfilesize:= xSize; FileRead(fHandle, AArrCGCreateFile[j].Signature, 16); FileSeek(fHandle, 0, 0); // calc CRC xBuffer:= AllocMem(xSize); CRC:= 0; try FileRead(fHandle, xBuffer^, xsize); k:= 0; //calculate smg crc (all bytes in file) while k <= (xSize-1) do begin CRC:= CRC + xBuffer[k]; inc(k); end; finally AArrCGCreateFile[j].CRCsmgfile:= CRC; FreeMem(xBuffer); FileClose(fHandle); end; end; if CG0_idx <> 255 then begin AArrCGCreateFile[CG0_idx].StartAddr:= 0; AArrCGCreateFile[CG0_idx].CGNumber:= $FF; AArrCGCreateFile[CG0_idx].smgfilename:= ''; AArrCGCreateFile[CG0_idx].smgfilesize:= 0; AArrCGCreateFile[CG0_idx].CRCsmgfile:= 0; ACGStartAddrFName[1, CG0_idx]:= ''; ACGStartAddrFName[2, CG0_idx]:= ''; ACGStartAddr[1, CG0_idx]:= 0; ACGStartAddr[2, CG0_idx]:= 0; end; end;
Еще записи по теме
- Модуль "P2KFileManager" (часть 12) - DelFileFromList
- Модуль "Мое меню" (часть 8) - GetWebShortcuts
- Модуль "Стили звонка" (часть 6) - GetNameByIndex
- Модуль "P2KApi" (часть 75) - TP2KAPI.FlashErase2
- Модуль "Справочник" (часть 12) - GetPhoneBookEntries
- Главный модуль программы (часть 15) - btnOBEX_RefreshClick
- Модуль "KJavaStructs" (часть 2) - определение переменных и типов данных
