Witam,
mam taki program
miejsce niepoprawnego działania:
nie rozumiem po co tak
dl=sys2.Length();
dlint=StrToInt(dl);
skoro mozna
dlint = sys2.Length();
dlaczego nie sprawdzasz dlint przed wejściem w do while?
resetujesz sys2 = “” w funkcji reset a przelicz wchodzisz bez sprawdzania licz i dlint!?
licz ustawiasz na starcie = 0
a to już podstawowy błąd - AnsiString w odróżnieniu od char* zaczyna się od 1
no i czy napewno się inicjalizuje?
lepiej inicjalizuj zmienne w konstruktorze i wstaw do Unit.h jako publiczny składnik klasy Form1
licz moze być nawet na starcie większe niż sys2.Length() gdzieś to jeszcze modyfikujesz?
- 0 to źle
licz = minimum 1 maximum sys2.Length();
adresowanie sys2[1 > licz>1] dla sys2 == “” spowodu powodje Acess Violation w char AnsiString::operator[] (int indeks) { return c_str[indeks-1]; }
Ok, wielkie dzięki za odpowiedź, problem tkwił w zerach. Więc ten problem rozwiązany. Teraz nasuwa mi się pytanie. Skoro zmienna String jest tablicą Charów i skoro w Borlandzie nie można używać 0, to w jaki sposób można poruszać się po tej tablicy lub jak zrobić by odczytać wartość z tablicy o indeksie 0