int stürtzt beim Speichern bei 13 ab



  • hab da noch ein problem...

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    #include<stdio.h>
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    int i,e=0;
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    i=StrToInt(Edit1->Text);
    
    FILE*core=fopen("huhu.text","r+");
    fseek(core,0,SEEK_SET);
    fwrite(&i,sizeof(i),1,core);
    fclose(core);
    
    e++;
    
    Panel1->Caption=e;
    
    Edit1->Text=e+1;
    
    FILE*str=fopen("huhu.text","r+");
    fread(&i,sizeof(i),1,str);
    fclose(core);
    StringGrid1->RowCount=i;
    
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::FormActivate(TObject *Sender)
    {
    int z;
    
    for (z=0;z<10000;z++)
    StringGrid1->Cells[0][z]=z+1;
    }
    //---------------------------------------------------------------------------
    

    Dieses Programm macht die StrinGrid->RowCount so hoch wie die Zahl ist, die ich eingegeben, gespeichert und wieder geöffnet habe. Macht nicht viel Sinn soll aber das Problem eingrenzen...
    Wenn ich jetzt 13 eingebe hängt er sich auf! Kann mir jemand erklären warum? In einem umfangreichen Datenbank programm läuft es genauso ab... warum die 13? Warum stürtzt der da ständig ab? (Nicht direkt abstürzen, sondern er liest die 13 nicht mehr als 13 aus)

    (Edit: Habe grade rausgefunden, dass bei der Zahl 269, bei 782 und 1038 das gleiche passiert... nur bei 13 zeigt er 1 ein, bei 269 auch 1, bei 782 zeigt er 3 an und bei 1038 zeigt er 4 an....)



  • Hallo,
    versuch mal die Datei binär zu öffnen:

    FILE*core=fopen("huhu.text","rb+");
    

    mfg SoftHall



  • Fett thx! Das tut...
    Man wir machen jetzt seit zwei Wochen dadran rum, wir sind halt doch noch Noobs...
    Man lernt halt immer noch dazu. 😃


Anmelden zum Antworten