also .... ich hab jetzt zumindest mal rausgefunden, dass es (wahrschl. nur teilweise) an dem zeilenumbruch am ende lag. Das hab ich jetzt ausgebessert und es funktioniert zumindest teilweise ... ich finds ja eigtl. recht lustig =)
Hier mal der Codeausschnitt bei dems hapert, falls sich einer meiner erbarmen möchte und ihn durchliest:
|
C-/C++-Quelltext
|
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
|
ifstream f;
f.open("updates.nix", ios::in | ios::binary); //die datei öffnen in der die dateien und ihr ziel stehen
char cnumber[128];
f.getline(cnumber, sizeof(cnumber));
int anzahl = atoi(cnumber);//die anzahl an neuen dateien rausfinden
int number = 0;
char source[128];
char target[128];
for(int i=0; i<anzahl; i++)
{
void* TEXT;
unsigned int TEXTSIZE = 0;
ZeroMemory(source, sizeof(source));
ZeroMemory(target, sizeof(target));//die array leeren (diesmal hoffentlich richtig?)
f.getline(source, sizeof(source));
f.getline(target, sizeof(target));
ZeroMemory(&source[strlen(source)-1], sizeof(source));//den zeilenumbruch am ende entfernen
if(i!=anzahl-1)
{
ZeroMemory(&target[strlen(target)-1], sizeof(target));//nur wenn es nicht die letzte zeile ist den zeilenubruch entfernen
}
result = readArchivedFile("updates.zip", source, "", &TEXT, &TEXTSIZE);//hier die datei aus dem zip archhiv lesen (funktion aus dem tutorial hier im forum, auch schon getesten, es funktioniert)
ofstream of; //hier soll dann der inhalt in die datei geschrieben werden, wobei jezt nur "text" drin steht, zum testen
cout<<"| "<<target<<" |"<<endl;
of.open(target, ios::out | ios::binary);
of.write("text", strlen("text"));
of.close();
/* if(result)
{
cout<<"Datei "<<source<<" konnte nicht extrahiert werden, Fehlercode: "<<result<<endl;
continue;
}
else
{
number = i+1; //mitzählen wieviele dateiens wirklich waren
}*/
delete TEXT;
}
f.close();
|
naja also das mehr oder weniger lustige dran is, dass wenn ich die Funktion readArchivedFile auskommentier, erstellts mir die dateien und schreib "text" rein ... wenn ich die Funktion aber aufruf steht in der variablen target nix mehr drin und es werden keine dateien erstellt ...
Mach ich da schon wieder was mit dem Speicher falsch oder was? ôO
Bitte helft mir