Array aus Datei lesen
-
Hi,
ich habe ein problem mit einem array, das ich aus einer datei lesen will. es ist zu groß um es auf einmal zu lesen. wenn ich aber die komponenten einzeln einlesen will, und diese ausgebe, kommt nach einiger zeit müll raus. hier mal mein quelltext, den ich mal zum testen gemacht habe:
int d[128]; for(int i= 0; i< 128;i++) d[i]=i; ofstream f("test.txt"); f.write((char*)&d, sizeof(d)); f.close(); ifstream g; g.open("test.txt"); int b; for(int i = 0; i< 128;i++) { g.read((char*)&b, sizeof(b)); Memo1->Lines->Add(b); } g.close();was am ende in Memo1 steht is merkwürdig:
0
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
25
25 und noch mehr 25 bis zum ende.kann mir jemand helfen?????? wieso is das so?
danke schon mal

-
Du solltest mal überprüfen, ob das Lesen überhaupt erfolgreich war:
while(g.read((char*)b,sizeof(b))) Memo1->Lines->Add(b);
-
das lesen ist dann nicht mehr erfolgreich...
nach 25 hört er auf. aber wieso??
-
Wie groß ist denn die Datei, die du hinten herausbekommen hast?
(außerdem solltest du dir mal ansehen, welches Fehlerflag gesetzt wurde (eof(), fail(), bad()))PS: Nur am Rande: Wenn du Binärdaten verarbeitest, solltest du die Datei als ios::binary öffnen
-
also die datei hat 513kb und fail() ist 1, und wenn ich die datei mit ios::binary oeffne, wird mehr ausgelesen:
0
1
2
3
4
5
6
7
8
9
2573
2816
3072
3328
3584
3840
4096
4352
4608
4864
5120
5376
5632
5888
6144
6400
6656
6912aber wie man sieht ist das nicht besser. ich hab keine ahnugn wieso aus der datei nich gelesen werden kann. wenn ich das array aus diesem test komplett wieder einlese, klappt es. aber wie gesagt, es kommt ein overflow wenn ich es mit dem großen versuche.