[Delphi] Problem z AnsiString

0

Hej. Mam taki problem. Mam program konsolowy w ktorym mam dodawac pisemnie liczby majace max. 1000 cyfr. Ustalilem zmienne na typ AnsiString i przy wklepaniu (okolo) 255 cyfr blokuje mi sie klawiatura (nie moge wpisac kolejne cyfry). Z gory dzieki za pomoc

0

pewnie masz readln zamiast tego zastosuj read i po każdym rób
lancuch := lancuch + wlasnie_wczytany_znak;

0
Misiekd napisał(a)

pewnie masz readln zamiast tego zastosuj read i po każdym rób
lancuch := lancuch + wlasnie_wczytany_znak;

Nie dziala :-/ jakis exception in adres. Jak jest read to w zmienna typu AnsiString nie moge wpsiac nawet 1.
Sprobowalem pod zmienna typu Ansistring podstawic 400 cyfrowa liczbe (w kodzie liczba:='10000....') i byl "[Error] dodawanie.dpr(133): String literals may have at most 255 elements".
W Helpie w Delphi pisze ze pod AnsiString moza podstawic 2^31, a tu ma problem z "marnym" 1000.

0
Ryba napisał(a)

... wiec jedyna mozliwoscia jest zapisywanie ich w lanuchach i dodawanie ich jak nas uczyla pani w podstawowce.

Nie jest to jedyna możliwość.
Ostatnio liczyłem 4^652 co dało liczbę z 392 cyfr /sztuka dla sztuki/.
Zapis w tablicy, każda cyfra w osobnej komórce.

0

read odpada, bo i tak mechanizm działania ma taki sam jak readln. napisz sobie własną funkcję odczytującą liczby, używając readconsoleinput (odpowiednik readkey & keypressed).
problem z 255 znakami nie polega na pojemności stringa, ale pojemności stałej z liczbą. chcesz mieć ponad 255 znaków - użyj
a := '11231...23452345';
a := a + '663557356...345436';
...
itp - w ten sposób możesz wklepać w a ile będziesz chciał.

teles: 4^652 to nic, spróbuj się z 10000!

0

phi... 4^10000 to "raptem" 6022 cyfr ;-P
nawet nie potrafię nazwać takiej liczby [???]

// miałem na myśli 10000 silnia - Ł

1 użytkowników online, w tym zalogowanych: 0, gości: 1