FireBirdLib - Topfield TMS PVR TAP Programming Library
infData_GetNameByIndex.c
Go to the documentation of this file.
1#include <stdio.h>
2#include <string.h>
3#include "FBLib_rec.h"
4
5extern FILE *infDatainfFile;
6
7bool infData_GetNameByIndex(const char *infFileName, dword NameIndex, char *NameTag)
8{
9 bool ret;
10 tTFRPlusHdr TFRPlusHdr;
11 char NameTagHdr[256];
12 dword CurrentIndex;
13
14 TRACEENTER();
15
16 ret = FALSE;
17
18 if(NameTag && infData_OpenFile(infFileName))
19 {
20 CurrentIndex = 0;
22
23 while(ftell(infDatainfFile) < (int)infData_Flen())
24 {
25 fread(&TFRPlusHdr, sizeof(tTFRPlusHdr), 1, infDatainfFile);
26
27 //Stop parsing if the magic is invalid
28 if(memcmp(TFRPlusHdr.Magic, INFDATMAGIC, 4) != 0) break;
29
30 fread(NameTagHdr, TFRPlusHdr.NameTagLen, 1, infDatainfFile);
31
32 if(NameIndex == CurrentIndex)
33 {
34 ret = TRUE;
35 strcpy(NameTag, NameTagHdr);
36 break;
37 }
38
39 CurrentIndex++;
40 fseek(infDatainfFile, TFRPlusHdr.PayloadSize, SEEK_CUR);
41 }
42 }
43
45
46 TRACEEXIT();
47 return ret;
48}
struct __STDIO_FILE_STRUCT FILE
Definition: FBLib_hdd.h:137
#define INFDATMAGIC
Definition: FBLib_rec.h:18
bool infData_OpenFile(const char *infFileName)
void infData_CloseFile(void)
dword infData_Flen(void)
Definition: infData_Flen.c:6
#define INFDATASTART
Definition: FBLib_rec.h:15
FILE * infDatainfFile
bool infData_GetNameByIndex(const char *infFileName, dword NameIndex, char *NameTag)
#define SEEK_SET
Definition: libFireBird.h:1875
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define SEEK_CUR
Definition: libFireBird.h:1879
#define TRACEENTER()
Definition: libFireBird.h:1243
dword NameTagLen
Definition: FBLib_rec.h:23
char Magic[4]
Definition: FBLib_rec.h:22
dword PayloadSize
Definition: FBLib_rec.h:24