Zmienna string: wartość pow. 255 znaków

Witam, zrobiłem taki program:

program polowa;

var x:string;

    z,y,v,i,a,j:integer;




 begin


    readln(a);

    for j:=1 to a do

     begin

       readln(x);

       y:=length(x);

       z:=y div 2;

       v:=z+1;

       delete(x, v, z);

       writeln(x);



     end;


 end.

Program ten ma wypisać połowę znaków ze wczytanej zmiennej. Dopiero gdy zrobiłem to całe zadanie, zobaczyłem że zakres zmiennej x to 1<= x <= 2000. Co z tym fantem zrobić ?? String wczytuje tylko do 255 znaków. Macie jakieś pomysły ?? Pozdro.

Jeśli dobrze interpretuje to co napisałeś (a jest trochę niejasne) to:

Wczytujesz ciąg znaków np. “AlaMaKotka” i to ma za zadanie wypisać 1/2 ciągu czyli “AlaMa” ???

Ta zmienna “x” to dlugosc maksymalna ciagu? Bo to co masz w kodzie nie za bardzo pasuje (“x” trzyma input z klawiatury, a “y” zachowuje się jak zakres “x” tak?)

Jeśli typ string w pascalu ogranicza cię do 255 znaków to musisz przejść na tablice znaków: Array of Char…

ps. jak będę miał chwilkę to spróbuje ci to napisać…

Dobra, zrobiłem to od początku, wczytuję ładnie dane do tablicy typu char, ale teraz nie wiem jak ustalić długość tej “zapisanej” tablicy, bo jak biorę x:=length(tab) to wychodzi że tablica ma 2000 znaków, ale tak naprawdę słowo miało 8 znaków. Nie wiesz może jak ustalic tą ilość znaków w tablicy ??

To co wpisujesz = ciąg, kończy się kodem ASCII #13 (ENTER - CR) lub #10 (ENTER - LF) w zależności od systemu Windows / Linux (jeśli oczywiście wpisujesz znak entera też do tablicy). Możesz też wyzerować tablicę przed wgraniem stringa i szukać pierwszej zerowej wartości, bo to będzie koniec ciągu.

a jak znaleźć tą pierwszą zerową wartość ??

Przeszukać liniowo tablice, element po elemencie, znaleźć 0. Inne rozwiązanie, trzymać w zmiennej ilość wpisanych znaków podczas wprowadzania Ich do tablicy?