Bug in TIniFile Klasse



  • Hallo zusammen.

    Ich habe ein Problem mit der TIniFile Klasse, von dem ich denke, dass es ein Bug ist. Der Source-Code ist wie folgt:

    TIniFile *IniFile;

    IniFile = new TIniFile( "C:\\ReadSectionValues.ini" );
    IniFile->ReadSectionValues( "TEXTS", ListBox1->Items );

    delete( IniFile );

    Die Methoden "ReadSectionValues" sowie "ReadSection" reagieren in gleicher Weise. Sie funktionieren so lange, wie die Anzahl der Schlüssel in der Section "TEXTS" eine gewisse Anzahl nicht überschreiten. Ab ca. 900 Einträgen wird kein weiterer Eintrag mehr hinzugefügt. Stehen also wie bei mit in der Section "Texts" ca. 2000 Einträge, dann liefert Count() auf die String-Liste immer einen Wert um die 900 zurück. Der zuletzt aufgeführte Wert in der String-Liste wird überdies abgeschnitten.

    Meine Fragen sind nun folgende:
    Ist der Bug bekannt?
    Ist es überhaupt ein Bug?
    Wie kann man das beheben?

    Ich benutze den C++Builder 6

    Der C++ Builder 2009 macht es im übrigen richtig, den kann ich hier aber leider nicht nutzen.

    Gruß, Bernhard



  • Du hast deine Fragen bereits teilweise selbst beantwortet:

    BernhardG schrieb:

    Ist der Bug bekannt?

    Der C++ Builder 2009 macht es im übrigen richtig[...]

    Ist es überhaupt ein Bug?

    Ja. Sonst wuerde der Builder 2009 nicht anders handeln.

    Wie kann man das beheben?

    Versuch z.B. die TIniFile-Klasse aus dem BCB2009 in den BCB6 zu uebernehmen. Vllt. klappt's ja. Ansonsten wirst du dich auf die Ursachensuche begeben muessen, um den Fehler selber zu beheben, oder aber eine neue Klasse aufsetzen muessen.



  • Hallo Heini.

    Danke für deine Antwort.
    Werde versuchen, die Klasse vom Builder 2009 in den Builder 6 zu portieren, hab aber wenig Hoffnung dass das klappt.
    Es wundert mich nur, dass das Problem bei einer so wichtigen Klasse nicht relativ bekannt und beschrieben ist, zumindest hab ich mir die Finger blutig gegoogelt und nichts wirklich brauchbares gefunden.

    Gruß, Bernhard



  • BernhardG schrieb:

    Es wundert mich nur, dass das Problem bei einer so wichtigen Klasse nicht relativ bekannt und beschrieben ist, zumindest hab ich mir die Finger blutig gegoogelt und nichts wirklich brauchbares gefunden.

    http://support.microsoft.com/kb/78346/de

    Workaround: TMemIniFile anstelle von TIniFile benutzen.



  • Oh, da gibt's ja noch eine Klasse. Ja, dann ist diese natuerlich zu bevorzugen. 🙄



  • Hallo audacia
    Vielen Dank für den Hinweis. Werde es so probieren.
    Schöne Grüße, Bernhard


Anmelden zum Antworten