FireBirdLib - Topfield TMS PVR TAP Programming Library
StringDBLoad.c
Go to the documentation of this file.
1#include <stdlib.h>
2#include <fcntl.h>
3#include <unistd.h>
4#include <string.h>
5#include "libFireBird.h"
6
7bool StringDBLoad(tStringDB *StringDB, char *FileName)
8{
10
11 int f;
12 bool ret;
13 dword l, p;
14 char AbsFileName[FBLIB_DIR_SIZE];
15
16 if(!StringDB || !StringDB->DB || !FileName || !*FileName)
17 {
18 TRACEEXIT();
19 return FALSE;
20 }
21
22 ConvertPathType(FileName, AbsFileName, PF_FullLinuxPath);
23
24 ret = FALSE;
25 if(*AbsFileName)
26 {
27 f = open(AbsFileName, O_RDONLY);
28 if(f >= 0)
29 {
30 TAP_MemFree(StringDB->DB);
31
32 //DB Size
33 read(f, &l, sizeof(dword));
34 StringDB->DB = TAP_MemAlloc(l);
35
36 if(!StringDB->DB)
37 {
38 StringDB->DBSize = 0;
39 close(f);
40
41 TRACEEXIT();
42 return FALSE;
43 }
44 StringDB->DBSize = l;
45 StringDB->DBEnd = l + StringDB->DB - 1;
46
47 //Current pointer
48 read(f, &p, sizeof(dword));
49 StringDB->DBPtr = p + StringDB->DB;
50
51 read(f, StringDB->DB, l);
52
53 close(f);
54
55 ret = TRUE;
56 }
57 }
58
59 TRACEEXIT();
60 return ret;
61}
void ConvertPathType(const char *Source, char *Dest, tPathFormat DestFormat)
bool StringDBLoad(tStringDB *StringDB, char *FileName)
Definition: StringDBLoad.c:7
#define FBLIB_DIR_SIZE
Definition: libFireBird.h:1871
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243
@ PF_FullLinuxPath
Definition: libFireBird.h:1926
dword DBSize
Definition: libFireBird.h:2548
char * DB
Definition: libFireBird.h:2549
char * DBEnd
Definition: libFireBird.h:2551
char * DBPtr
Definition: libFireBird.h:2550