Ich habe eine Datei aus einem Game, kann sie leider nciht richtig verwerten. Die Datei muss irgendwie zu öffnen sein und man müsste daraus bestimmte Informationen ziehen könne, wenn ich diese aber einfach mit einem Texteditor aufmache klappt da überhaupt nichts.
Ich würde gerne wissen, was es so für Möglichkeiten gibt die Datei vielleicht doch öffnen zu können?

Weitere Infos: Geht um das Spiel World of Warcraft. Erweriterung ist .wdb (Hat aber ncihts mit der Works DB denke ich zu tun). Habs mit dem Hex-Editor probiert werde daraus aber auch nicht schlau. Soweit ich weiß ist die Datei binär.

Es ist eine Art Datenbank.
Hier mal ein Code mit dem es möglich ist einen bestimmten Wert aus der Datei zu ziehen, vielleicht hilft er ja weiter, ist C# nehme ich an:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include <stdio.h>
#include <string.h>
 
void PrintUsage(void)
{
    printf("DumpItemCache usage:  dumpitemcache <filename>\n");
    printf("  filename - path and filename of itemcache.wdb\n");
}
 
int freadstr(char *strOut, int maxLen, FILE *f)
{
    int retVal = 0;
    char c = 1;
 
    while (maxLen && c && c != EOF)
    {
        c = fgetc(f);
        if (c && c != EOF)
            strOut[retVal++] = c;
        maxLen--;
    }
 
    strOut[retVal] = 0;
    return retVal;
}
 
char *fixupitemname(char *itemname)
{
    static char retVal[1024];
    int src, dest;
    src = dest = 0;
 
    while (itemname[src])
    {
        if (itemname[src] == '"')
            retVal[dest++] = '\\';
        retVal[dest++] = itemname[src++];
    }
    retVal[dest] = 0;
 
    return retVal;
}
 
int main(int argc, char *argv[])
{
    FILE *fIn;
    char *fileName;
    int sig;
    int value;
    int recSize;
    char itemName[512];
 
    if (argc < 2) 
    {
        PrintUsage();
        return 1;
    }
 
    fileName = argv[1];
 
    if ((fIn = fopen(fileName, "rb")) == NULL)
    {
        printf("Could not open %s\n", fileName);
        return 1;
    }
 
    fread(&sig, 4, 1, fIn);
    if (sig != 0x57494442)
    {
        printf("Invalid file signature!\n");
        fclose(fIn);
        return 1;
    }
 
    printf("SellValues = {\n");
 
    fseek(fIn, 12, SEEK_CUR); 
 
    while (!feof(fIn))
    {
        if (fseek(fIn, 4, SEEK_CUR) != 0)  // unique item id
            break;
        if (fread(&recSize, sizeof(recSize), 1, fIn) != 1)
            break;
        if (fseek(fIn, 8, SEEK_CUR) != 0)
            break;
 
        freadstr(itemName, sizeof(itemName), fIn);
 
        // 3 more copies of itemname
        if (fseek(fIn, (int)(3 * (strlen(itemName) + 1)), SEEK_CUR) != 0)
            break;
 
        // more attributes
        if (fseek(fIn, 16, SEEK_CUR) != 0)
            break;
 
        if (fread(&value, sizeof(value), 1, fIn) != 1)
            break;
 
        if (value)
            printf("\t[\"%s\"] = %d,", fixupitemname(itemName), value);
        
        if (fseek(fIn, recSize - 8 - (4 * ((int)strlen(itemName) + 1)) - 16 - (int)sizeof(value), SEEK_CUR) != 0)
            break;
    }  /* while !feof */
 
    fclose(fIn);
    printf("\n}\n");
 
    return 0;
}

Meine Frage ist es wie ich es nun schaffe die Datei komplett zu öffnen und damit für mich lesbar zu machen. Bruache ich dazu ein bestimmtes Prog oder reicht mir auch schon ein bestimmter Code, der das ganze übersetzt?