[C++ Builder]klasa TStrings i Capacity


(Marnowak1) #1

Witam!

Poniższy kod:

String projekt,sciezka;

        int answer,how_many;

        AnsiString message;

        TStringList *sections=new TStringList;

        sections->Capacity=50000;

        projekt=ExpandFileName("Lotek.exe");

        sciezka=ExtractFileDir(projekt);

        lotto_file=sciezka+"\\numbers.ini";

        TIniFile *lottoini=new TIniFile(lotto_file);

        SYSTEMTIME sysdate;

        GetLocalTime(&sysdate);

        AnsiString year=(AnsiString)sysdate.wYear;

        AnsiString month=(AnsiString)sysdate.wMonth;

        AnsiString day=(AnsiString)sysdate.wDay;

        if(day.Length()==1) day="0"+day;

        if(month.Length()==1) month="0"+month;

        date=day+"-"+month+"-"+year;

        lottoini->ReadSections(sections);

        how_many=sections->Count;

Uparcie zwraca mi zmienną how_many o wartości 1490 zamiast 5141. Doszedłem do tego, że klasa TStrings *sections nie chce przyjąć całości pliku ini.

Próbowałem sections->Capacity=50000. Zwracało mi to wartość int size=sections->Capacity równą 50000, ale niestety metoda count uparcie pokazuje 1490 jako ilość sekcji w pliku ini.

Zna ktoś może jakąś inną metodę do odczytu ilości sekcji w ini i odczytu nazwy ostatniej sekcji w pliku? Tą co użyłem znalazłem na jakiejś stronie z tutorialem, ale jak widać są z nią problemy.


(Jakub Nekro) #2

a mogę zapytać po co te capacity? Przy pracy w delphi z TIniFile funkcja ReadSections działała mi normalnie na obiekcie bez żadnego ustawiania tej zmiennej.