tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
21
ZUGRIFFE
503
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Hallo
    Ich möchte gerne zB Bilder mit C++ in nur eine Datei packen aber nicht komprimieren!
    nun will ich mit C++ direkt die Datei zB Bild_22.png öfnnen ohne die vorher erstellte Datei wieder zu entpacken!
    Also qusie so:
    öffne_Datei("Gepackte_Datei.datei\\Bild_22.png");
    ist so was möglich?
    Danke
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    wenn du die Bilder in deinem Programm anzeigst, möglich.

    Wenn sie mit dem Standardprogramm oder sonst irgendwas geöffnet werden sollen: Zuerst entpacken.
    Theoretisch wäre es zwar ohne auch möglich, aber da müsste das andere Programm mitmachen. Und ich kenn kein Bildprogramm, das sich von einer angegebenen Adresse aus dem Speicherbereich eines Fremdprogramms ein Bytearray zum Öffnen holt.
     

  3. #3
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Es soll kein fremdes programm entpacken nur mein programm soll die dateien alle in eine reinschreiben und sie auch wieder lesen können.
    Und das alles bitte möglichst schnell sinst bracuht es so lange zum Laden.
    MFG
    Danke
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Und wo ist dann das Problem?
    Zuerst Datei öffnen, Verzeichnis rein, Daten rein, schließen.
    Datei öffnen, Verzeichnis durchsuchen, seek zur gewünschten Position, bestimtme Byteanzahl lesen, schließen.
     

  5. #5
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    hä? ok das kapier ich nicht wie kann ich zb 3 Blder in eine Datei packen und wieder auslesen?
    Das versteh ich nicht wirklich
    MFG
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  6. #6
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Muss die Datei zB. ein gültiges Zip sein, das mit anderen Programmen öffenbar ist, oder nur für deins?

    Wenn nur für deins:
    Öffne die Datei im Binärmodus (bei fopen rb und wb statt r und w)
    Dann schreibst du zB. Die Anzahl der Bilder drinnen als int(4 Byte, nicht ascii) rein.
    Dann kommt pro Bild ein int mit der Postion, wo die Daten in der Datei anfangen, ein int mit der Byteanzahl und der Dateiname.
    Dann die Daten.

    Zum Auslesen gehst du die Dateinamen/Länge/Offset durch, um herauszufinden, welche Bilder drin sind und welches du auslesen willst.
    Von diesem springst du dann mit fseek (oder vergleichbares bei iostream) zum Offset und liest Anzahl Bytes aus.

    Gruß
     

  7. #7
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Ok du sry aber das ist glaub ich noch etwas zu komplizeirt für mich
    Könntest du da irgendwie ein link finden oder ein Codeschnipsel tut es auch, nur zum lesen und schreiben.
    Und ja die Datei soll nur für mein prog sein.
    PS Wie krig ich auf den byte ganu die größe eines Bildes/Datei/Sounds?
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  8. #8
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Windows oder Linux?
    Nur reines klassenloses C oder auch C++ erlaubt?

    Und bevor ich einen Link zu einem Code genau für dieses Problem finde, kann ich es vermutlich selber schneller programmieren. Ist wirklich nicht viel.

    fopen, fclose, fileno, _filelength, fread, fwrite, malloc, free.
    Mehr braucht man nicht.
    MSVCplusplus bedankt sich. 

  9. #9
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Danke für deine geduld
    Also Windows und C++
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  10. #10
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Wenn du es nicht zu eilig hast, schreib ich irgendwann heute noch was kleines zusammen.
     

  11. #11
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Ok danke aebr wenns geht und nur wenn du willst vor 20:50 weil ich (glaub ich) erst mal für ein Tag kein Computer habe Gruß
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  12. #12
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Code cpp:
    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
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    
    #include <stdio.h>
    #include <io.h>
    #include <string.h>
    #include <malloc.h>
    #include <windows.h>
     
    struct multifile_fentry
    {
        char name[256];
        UINT32 len, off;
    };
     
    class multifile_save
    {
    protected:
     
        struct multifile_fentry *dic;
        UINT32 anz;
        FILE *dat;
     
        multifile_save(multifile_save &x) {}
        multifile_save &operator=(multifile_save &x) { return *this; }
     
    public:
        multifile_save()
        {
            dat = NULL;
            dic = NULL;
            anz = 0;
        }
        ~multifile_save()
        {
            close();
        }
     
        int open(const char *destfile)
        {
            dic = (struct multifile_fentry *)malloc(sizeof(multifile_fentry) * 0);
            anz = 0;
            if(dic == NULL)
                return 1;
            dat = fopen(destfile, "wb");
            if(dat == NULL)
            {
                free(dic);
                return 2;
            }
            return 0;
        }
     
        void close()
        {
            fwrite((void *)dic, sizeof(multifile_fentry), anz, dat);
            fwrite((void *)anz, 4, 1, dat);
            fclose(dat);
            free(dic);
            dic = NULL;
            dat = NULL;
            anz = 0;
        }
     
        int addfromfile(const char *filename, const char *archivename)
        {
            FILE *readfile;
            UINT32 len;
            char buf[1024];
            if(strlen(archivename) > 255)
                return 1;
            readfile = fopen(filename, "rb");
            if(readfile == NULL)
                return 2;
            if((anz % 20) == 0)
            {
                struct multifile_fentry *dic2;
                UINT32 j;
                dic2 = (struct multifile_fentry *)malloc(sizeof(multifile_fentry) * (anz + 20));
                if(dic2 == NULL)
                {
                    fclose(readfile);
                    return 3;
                }
                for(j = 0; j < anz; j++)
                {
                    dic2[j].len = dic[j].len;
                    dic2[j].off = dic[j].off;
                    strcpy(dic2[j].name, dic[j].name);
                }
                free(dic);
                dic = dic2;
            }
            dic[anz].off = ftell(dat);
            len = filelength(fileno(readfile));
            dic[anz].len = len;
            strcpy(dic[anz].name, archivename);
            anz++;
            while(len > 1024)
            {
                fread(buf, 1, 1024, readfile);
                fwrite(buf, 1, 1024, dat);
                len -= 1024;
            }
            fread(buf, 1, len, readfile);
            fwrite(buf, 1, len, dat);
            fclose(readfile);
            return 0;
        }
     
        int addbytes(const char *bytes, UINT32 bytelen, const char *archivename)
        {
            if(strlen(archivename) > 255)
                return 1;
            if((anz % 20) == 0)
            {
                struct multifile_fentry *dic2;
                UINT32 j;
                dic2 = (struct multifile_fentry *)malloc(sizeof(multifile_fentry) * (anz + 20));
                if(dic2 == NULL)
                    return 3;
                for(j = 0; j < anz; j++)
                {
                    dic2[j].len = dic[j].len;
                    dic2[j].off = dic[j].off;
                    strcpy(dic2[j].name, dic[j].name);
                }
                free(dic);
                dic = dic2;
            }
            dic[anz].off = ftell(dat);
            dic[anz].len = bytelen;
            strcpy(dic[anz].name, archivename);
            anz++;
            fwrite(bytes, 1, bytelen, dat);
            return 0;
        }
    };
     
    class multifile_load
    {
    protected:
     
        struct multifile_fentry *dic;
        UINT32 anz;
        FILE *dat;
     
        multifile_load(multifile_load &x) {}
        multifile_load &operator=(multifile_load &x) { return *this; }
     
    public:
        multifile_load()
        {
            dat = NULL;
            dic = NULL;
            anz = 0;
        }
        ~multifile_load()
        {
            close();
        }
     
        int open(const char *sourcefile)
        {
            dat = fopen(sourcefile, "rb");
            if(dat == NULL)
                return 1;
            fseek(dat, -4, SEEK_END);
            fread((void *)anz, 4, 1, dat);
            dic = (struct multifile_fentry *)malloc(sizeof(multifile_fentry) * anz);
            if(dic == NULL)
            {
                fclose(dat);
                return 2;
            }
            fseek(dat, -4 - (sizeof(multifile_fentry) * anz), SEEK_END);
            fread((void *)dic, sizeof(multifile_fentry), anz, dat);
            return 0;
        }
     
        void close()
        {
            fclose(dat);
            free(dic);
            dic = NULL;
            dat = NULL;
            anz = 0;
        }
     
        UINT32 getlength(const char *archivename)
        {
            UINT32 i;
            for(i = 0; i < anz; i++)
            {
                if(!strcmp(dic[i].name, archivename))
                    break;
            }
            if(i >= anz)
                return -1;
            return dic[i].len;
        }
     
        int readtofile(const char *filename, const char *archivename)
        {
            FILE *writefile;
            UINT32 len, i;
            char buf[1024];
            for(i = 0; i < anz; i++)
            {
                if(!strcmp(dic[i].name, archivename))
                    break;
            }
            if(i >= anz)
                return 1;
            writefile = fopen(filename, "wb");
            if(writefile == NULL)
                return 2;
            fseek(dat, dic[i].off, SEEK_SET);
            len = dic[i].len;
            while(len > 1024)
            {
                fread(buf, 1, 1024, dat);
                fwrite(buf, 1, 1024, writefile);
                len -= 1024;
            }
            fread(buf, 1, len, dat);
            fwrite(buf, 1, len, writefile);
            fclose(writefile);
            return 0;
        }
     
        int readbytes(char *bytes, UINT32 maxbytelen, const char *archivename)
        {
            UINT32 i;
            for(i = 0; i < anz; i++)
            {
                if(!strcmp(dic[i].name, archivename))
                    break;
            }
            if(i >= anz)
                return 1;
            if(dic[i].len < maxbytelen)
                maxbytelen = dic[i].len;
            fread(bytes, 1, maxbytelen, dat);
            return 0;
        }
    };
     
    int main()
    {
        return 0;
    }

    Gruß
     

  13. #13
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    Danke!
    Aber ne kurze erklärung? Ist da noch was zu machen? Also 2 Bilder rein und dann das zweite anzeigen/öffne was auch immer?
    Dann hast dus geschafft
    MFG
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

  14. #14
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Also

    Beispiel zum Abspeichern der zwei Bilder a.jpg und b.bmp in einer Datei beide.xyz
    Code cpp:
    1
    2
    3
    4
    5
    
    multifile_save speicherer;
    speicherer.open("beide.xyz");
    speicherer.addfromfile("a.jpg", "a.jpg");
    speicherer.addfromfile("b.bmp", "b.bmp");
    speicherer.close();
    Der zweite Parameter beim addfromfile kann irgendein beliebiger Name sein, muss nicht der Dateiname sein.
    Damit du das Bild wieder rausbekomsmt brauchst du dann diesen Namen vom zweiten Parameter.

    Rückgabewerte soltlen noch geprüft werden: 0 ist immer OK, was anderes ist ein Fehler.
    Nur close hat keinen Returnwert.

    Was man beim Abspeichern sonst noch machen kann: Als Quelle statt einer Datei ein Bytearray nehmen, mit addbytes.

    Herauslesen von a.jpg in eine Datei
    Code cpp:
    1
    2
    3
    4
    
    multifile_load leser;
    leser.open("Beide.xyz");
    leser.readtofile("a.jpg", "a.jpg");
    leser.close();
    Der zweite Parameter beim readtofile ist wieder der frei wählbare Name.
    Erster Parameter ist der neue echte Dateiname.

    Rückgabewerte sollten auch hier geprüft werden.
    Außerdem kann man wieder optional die Daten in ein Bytearray holen, mit readbytes.
    Wieviel Byte eines der gespeicherten Bilder hat, erfährt man mit getlength.

    Achtung: Es lässt sich zwar kompilieren, ich habs aber nicht wirklich gründlich getestet.
    Falls was nicht funktioniert melde dich nocheinmal

    Gruß
    Geändert von sheel (16.08.11 um 22:20 Uhr) Grund: Typo
     

  15. #15
    Avatar von MSVCplusplus
    MSVCplusplus MSVCplusplus ist offline Mitglied Brokat
    Registriert seit
    Dec 2010
    Ort
    Hessen
    Beiträge
    336
    So habs jetzt getestet dann kam Test.exe Funktioniert nicht mehr.
    Dann habe ich es im debug ausgeführt und in void close bei multifile_save kommt zugriffsverletzung in der zeile:
    Code cpp:
    1
    
    fwrite((void *)anz, 4, 1, dat);
    vollständiger code:
    Code cpp:
    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
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    
    #include <stdio.h>
    #include <io.h>
    #include <string.h>
    #include <malloc.h>
    #include <windows.h>
     
    struct multifile_fentry
    {
        char name[256];
        UINT32 len, off;
    };
     
    class multifile_save
    {
    protected:
     
        struct multifile_fentry *dic;
        UINT32 anz;
        FILE *dat;
     
        multifile_save(multifile_save &x) {}
        multifile_save &operator=(multifile_save &x) { return *this; }
     
    public:
        multifile_save()
        {
            dat = NULL;
            dic = NULL;
            anz = 0;
        }
        ~multifile_save()
        {
            close();
        }
     
        int open(const char *destfile)
        {
            dic = (struct multifile_fentry *)malloc(sizeof(multifile_fentry) * 0);
            anz = 0;
            if(dic == NULL)
                return 1;
            dat = fopen(destfile, "wb");
            if(dat == NULL)
            {
                free(dic);
                return 2;
            }
            return 0;
        }
     
        void close()
        {
            fwrite((void *)dic, sizeof(multifile_fentry), anz, dat);
            fwrite((void *)anz, 4, 1, dat);
            fclose(dat);
            free(dic);
            dic = NULL;
            dat = NULL;
            anz = 0;
        }
     
        int addfromfile(const char *filename, const char *archivename)
        {
            FILE *readfile;
            UINT32 len;
            char buf[1024];
            if(strlen(archivename) > 255)
                return 1;
            readfile = fopen(filename, "rb");
            if(readfile == NULL)
                return 2;
            if((anz % 20) == 0)
            {
                struct multifile_fentry *dic2;
                UINT32 j;
                dic2 = (struct multifile_fentry *)malloc(sizeof(multifile_fentry) * (anz + 20));
                if(dic2 == NULL)
                {
                    fclose(readfile);
                    return 3;
                }
                for(j = 0; j < anz; j++)
                {
                    dic2[j].len = dic[j].len;
                    dic2[j].off = dic[j].off;
                    strcpy(dic2[j].name, dic[j].name);
                }
                free(dic);
                dic = dic2;
            }
            dic[anz].off = ftell(dat);
            len = filelength(fileno(readfile));
            dic[anz].len = len;
            strcpy(dic[anz].name, archivename);
            anz++;
            while(len > 1024)
            {
                fread(buf, 1, 1024, readfile);
                fwrite(buf, 1, 1024, dat);
                len -= 1024;
            }
            fread(buf, 1, len, readfile);
            fwrite(buf, 1, len, dat);
            fclose(readfile);
            return 0;
        }
     
        int addbytes(const char *bytes, UINT32 bytelen, const char *archivename)
        {
            if(strlen(archivename) > 255)
                return 1;
            if((anz % 20) == 0)
            {
                struct multifile_fentry *dic2;
                UINT32 j;
                dic2 = (struct multifile_fentry *)malloc(sizeof(multifile_fentry) * (anz + 20));
                if(dic2 == NULL)
                    return 3;
                for(j = 0; j < anz; j++)
                {
                    dic2[j].len = dic[j].len;
                    dic2[j].off = dic[j].off;
                    strcpy(dic2[j].name, dic[j].name);
                }
                free(dic);
                dic = dic2;
            }
            dic[anz].off = ftell(dat);
            dic[anz].len = bytelen;
            strcpy(dic[anz].name, archivename);
            anz++;
            fwrite(bytes, 1, bytelen, dat);
            return 0;
        }
    };
     
    class multifile_load
    {
    protected:
     
        struct multifile_fentry *dic;
        UINT32 anz;
        FILE *dat;
     
        multifile_load(multifile_load &x) {}
        multifile_load &operator=(multifile_load &x) { return *this; }
     
    public:
        multifile_load()
        {
            dat = NULL;
            dic = NULL;
            anz = 0;
        }
        ~multifile_load()
        {
            close();
        }
     
        int open(const char *sourcefile)
        {
            dat = fopen(sourcefile, "rb");
            if(dat == NULL)
                return 1;
            fseek(dat, -4, SEEK_END);
            fread((void *)anz, 4, 1, dat);
            dic = (struct multifile_fentry *)malloc(sizeof(multifile_fentry) * anz);
            if(dic == NULL)
            {
                fclose(dat);
                return 2;
            }
            fseek(dat, -4 - (sizeof(multifile_fentry) * anz), SEEK_END);
            fread((void *)dic, sizeof(multifile_fentry), anz, dat);
            return 0;
        }
     
        void close()
        {
            fclose(dat);
            free(dic);
            dic = NULL;
            dat = NULL;
            anz = 0;
        }
     
        UINT32 getlength(const char *archivename)
        {
            UINT32 i;
            for(i = 0; i < anz; i++)
            {
                if(!strcmp(dic[i].name, archivename))
                    break;
            }
            if(i >= anz)
                return -1;
            return dic[i].len;
        }
     
        int readtofile(const char *filename, const char *archivename)
        {
            FILE *writefile;
            UINT32 len, i;
            char buf[1024];
            for(i = 0; i < anz; i++)
            {
                if(!strcmp(dic[i].name, archivename))
                    break;
            }
            if(i >= anz)
                return 1;
            writefile = fopen(filename, "wb");
            if(writefile == NULL)
                return 2;
            fseek(dat, dic[i].off, SEEK_SET);
            len = dic[i].len;
            while(len > 1024)
            {
                fread(buf, 1, 1024, dat);
                fwrite(buf, 1, 1024, writefile);
                len -= 1024;
            }
            fread(buf, 1, len, dat);
            fwrite(buf, 1, len, writefile);
            fclose(writefile);
            return 0;
        }
     
        int readbytes(char *bytes, UINT32 maxbytelen, const char *archivename)
        {
            UINT32 i;
            for(i = 0; i < anz; i++)
            {
                if(!strcmp(dic[i].name, archivename))
                    break;
            }
            if(i >= anz)
                return 1;
            if(dic[i].len < maxbytelen)
                maxbytelen = dic[i].len;
            fread(bytes, 1, maxbytelen, dat);
            return 0;
        }
    };
     
    int main()
    {
        multifile_save speicherer;
      speicherer.open("beide.xyz");
      speicherer.addfromfile("a.jpg", "a");
      speicherer.addfromfile("b.png", "b");
      speicherer.close();
      return 0;
    }
    Danke
    PS Auch wenn ich speicher.close() wegglasse kommt die gleiche debugger meldung
    Geändert von MSVCplusplus (17.08.11 um 07:02 Uhr)
     
    Fehlermeldung bitte!
    Google - Dein Freund und Helfer

Ähnliche Themen

  1. datein in exe packen
    Von MSVCplusplus im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 15.02.11, 09:56
  2. Smilies in eine Kiste packen
    Von thehasso im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 09.10.09, 11:28
  3. Gästebuch.php in eine Div packen
    Von ray2mi im Forum PHP
    Antworten: 14
    Letzter Beitrag: 04.09.09, 12:38
  4. 2 Datein in eine Datei packen
    Von MirakFH im Forum PHP
    Antworten: 4
    Letzter Beitrag: 28.08.05, 16:53
  5. Antworten: 4
    Letzter Beitrag: 08.06.02, 22:16

Stichworte