000
21.04.2005, 18:22 Uhr
Oliver
S2-Pixelgeneral
|
Folgendes Codefragment:
C++: |
// Listenobjekt zum speichern std::list<unsigned> tmp_list; FILE*erg2=fopen("c:\\proto.txt","w"); for(unsigned cur_char=0,x=0,y=0,chars_per_line=0;cur_char<CHARS_ANZ;++cur_char,++chars_per_line) { if((x+=char_widths[cur_char])>tex_width) { // Zeile voll; neue Zeile, y um die Schriftgröße weiter, x plus Zeichenbreite, kann ja // schließlich nicht abgetrennt werden! y+=char_height; x=char_widths[cur_char]; // x=0+char_widths[cur_char], äquivalent tmp_list.push_back(chars_per_line); chars_per_line=0; fprintf( erg2, "newline!!!! list_size=%d\n\n",tmp_list.size()); } fprintf( erg2, "CurChar: %d\nCharsPerLine: %d\n\n", cur_char, chars_per_line ); // Wenn das Zeichen natürlich über die Größe hinaus wächst, wirds // problematisch if((y+char_height)>tex_height) // und Schluss return 0; } fclose(erg2); erg2=fopen("c:\\finale.txt", "w"); fprintf(erg2, "listsize: %d", tmp_list.size()); fclose(erg2);
|
Der Code ist eigentlich irrelevant (bitte keine Stielfragen, ist nur zum Test). So wenn ich das Programm ausgeführt habe, sehen die beiden Dateien so aus (ist ein bisschen viel, aber ich will's "originalgetreu" machen):
c:\\proto.txt: |
CurChar: 0 CharsPerLine: 0
CurChar: 1 CharsPerLine: 1
CurChar: 2 CharsPerLine: 2
CurChar: 3 CharsPerLine: 3
CurChar: 4 CharsPerLine: 4
CurChar: 5 CharsPerLine: 5
CurChar: 6 CharsPerLine: 6
CurChar: 7 CharsPerLine: 7
CurChar: 8 CharsPerLine: 8
CurChar: 9 CharsPerLine: 9
CurChar: 10 CharsPerLine: 10
CurChar: 11 CharsPerLine: 11
CurChar: 12 CharsPerLine: 12
CurChar: 13 CharsPerLine: 13
CurChar: 14 CharsPerLine: 14
CurChar: 15 CharsPerLine: 15
CurChar: 16 CharsPerLine: 16
newline!!!! list_size=1
CurChar: 17 CharsPerLine: 0
CurChar: 18 CharsPerLine: 1
CurChar: 19 CharsPerLine: 2
CurChar: 20 CharsPerLine: 3
CurChar: 21 CharsPerLine: 4
CurChar: 22 CharsPerLine: 5
CurChar: 23 CharsPerLine: 6
CurChar: 24 CharsPerLine: 7
CurChar: 25 CharsPerLine: 8
CurChar: 26 CharsPerLine: 9
CurChar: 27 CharsPerLine: 10
CurChar: 28 CharsPerLine: 11
CurChar: 29 CharsPerLine: 12
CurChar: 30 CharsPerLine: 13
newline!!!! list_size=2
CurChar: 31 CharsPerLine: 0
CurChar: 32 CharsPerLine: 1
CurChar: 33 CharsPerLine: 2
CurChar: 34 CharsPerLine: 3
CurChar: 35 CharsPerLine: 4
CurChar: 36 CharsPerLine: 5
CurChar: 37 CharsPerLine: 6
CurChar: 38 CharsPerLine: 7
CurChar: 39 CharsPerLine: 8
CurChar: 40 CharsPerLine: 9
CurChar: 41 CharsPerLine: 10
newline!!!! list_size=3
CurChar: 42 CharsPerLine: 0
CurChar: 43 CharsPerLine: 1
CurChar: 44 CharsPerLine: 2
CurChar: 45 CharsPerLine: 3
CurChar: 46 CharsPerLine: 4
CurChar: 47 CharsPerLine: 5
CurChar: 48 CharsPerLine: 6
CurChar: 49 CharsPerLine: 7
CurChar: 50 CharsPerLine: 8
CurChar: 51 CharsPerLine: 9
newline!!!! list_size=4
CurChar: 52 CharsPerLine: 0
CurChar: 53 CharsPerLine: 1
CurChar: 54 CharsPerLine: 2
CurChar: 55 CharsPerLine: 3
CurChar: 56 CharsPerLine: 4
CurChar: 57 CharsPerLine: 5
CurChar: 58 CharsPerLine: 6
CurChar: 59 CharsPerLine: 7
CurChar: 60 CharsPerLine: 8
CurChar: 61 CharsPerLine: 9
CurChar: 62 CharsPerLine: 10
CurChar: 63 CharsPerLine: 11
CurChar: 64 CharsPerLine: 12
newline!!!! list_size=5
CurChar: 65 CharsPerLine: 0
CurChar: 66 CharsPerLine: 1
CurChar: 67 CharsPerLine: 2
CurChar: 68 CharsPerLine: 3
CurChar: 69 CharsPerLine: 4
CurChar: 70 CharsPerLine: 5
CurChar: 71 CharsPerLine: 6
CurChar: 72 CharsPerLine: 7
CurChar: 73 CharsPerLine: 8
CurChar: 74 CharsPerLine: 9
CurChar: 75 CharsPerLine: 10
CurChar: 76 CharsPerLine: 11
CurChar: 77 CharsPerLine: 12
CurChar: 78 CharsPerLine: 13
CurChar: 79 CharsPerLine: 14
CurChar: 80 CharsPerLine: 15
newline!!!! list_size=6
CurChar: 81 CharsPerLine: 0
sPerLine: 0
CurChar: 84 CharsPerLine: 1
CurChar: 85 CharsPerLine: 2
CurChar: 86 CharsPerLine: 3
CurChar: 87 CharsPerLine: 4
CurChar: 88 CharsPerLine: 5
CurChar: 89 CharsPerLine: 6
CurChar: 90 CharsPerLine: 7
CurChar: 91 CharsPerLine: 8
CurChar: 92 CharsPerLine: 9
CurChar: 93 CharsPerLine: 10
|
c:\\finale.txt: |
listsize: 3
|
Also die Listengröße war 6 und ist dann auf 3 geschrumpft (?). Der Code ist 1:1 kopiert, ich verzweifle hier noch . -- Demokratie ist die Diktatur der Mehrheit.
www.siedler25.org/ ( Siedler2 - Remake ) |