Ładny brzuch
var s, wynik: string;
s := 'asdfg';
for i:=0 to lenght( s ) do
begin
if s[i] <> 'f' then wynik:= wynik+ s[i]
else
break;
end;
Po tej pentelce spodziewal bym sie ze wynik bedzie rowny ' asd' - ale oczywiscie tak nie jest . Ma ktos pomysl jak to poprawic ?
Uytkownik helios128 edytowa ten post 17 stycze 2006, 14:11
Przecie s jest zawsze rne od 'f' i o ile si niemyl to wynik wychodzi 'asdfg'. No tak jest przynajmniej w Pascalu, e nie da si porwnywa charu z caym stringiem w ten sposb. Dodaj sobie poprostu w warunku s[i] <> 'f' zamiast tego co jest i powinno by tak jak chcesz.
Moze dlatego, ze kopiujesz ze stringa litere o indeksie 0 (a to jest zabronione) :P
for i:=1 to lenght( s ) do
wynik:=''; for i:=1 to length(s) do if s[i]<>'f' then wynik:=wynik+ s[i] else break;
sorki - za byka - teraz juz poprawilem mialo byc
for i:=0 to lenght(s) do
if s[i] <> 'f' then
i jako rezultat dostaje spacje zamiast asd - niech ktos to skompiluje i zobaczy
Przeciez Cyrkiel podal ci kompletny kod a ty dalej masz problem i jeszcze znowu napisales z bledem czyli i:=0
sorki - za byka - teraz juz poprawilem mialo byc
for i:=0 to lenght(s) do
if s[i] <> 'f' then
i jako rezultat dostaje spacje zamiast asd - niech ktos to skompiluje i zobaczy
s[0] zawiera dugo tylko dla ShortString (czyli stringa o dugoci do 255 znakw) :)
s[0] zawiera dugo tylko dla ShortString (czyli stringa o dugoci do 255 znakw) :)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Po tej pentelce spodziewal bym sie ze wynik bedzie rowny ' asd' - ale oczywiscie tak nie jest . Ma ktos pomysl jak to poprawic ?
Uytkownik helios128 edytowa ten post 17 stycze 2006, 14:11
Przecie s jest zawsze rne od 'f' i o ile si niemyl to wynik wychodzi 'asdfg'. No tak jest przynajmniej w Pascalu, e nie da si porwnywa charu z caym stringiem w ten sposb. Dodaj sobie poprostu w warunku s[i] <> 'f' zamiast tego co jest i powinno by tak jak chcesz.
Moze dlatego, ze kopiujesz ze stringa litere o indeksie 0 (a to jest zabronione) :P
for i:=1 to lenght( s ) do
wynik:=''; for i:=1 to length(s) do if s[i]<>'f' then wynik:=wynik+ s[i] else break;
sorki - za byka - teraz juz poprawilem mialo byc
for i:=0 to lenght(s) do
if s[i] <> 'f' then
i jako rezultat dostaje spacje zamiast asd - niech ktos to skompiluje i zobaczy
Przeciez Cyrkiel podal ci kompletny kod a ty dalej masz problem i jeszcze znowu napisales z bledem czyli i:=0
sorki - za byka - teraz juz poprawilem mialo byc
for i:=0 to lenght(s) do
if s[i] <> 'f' then
i jako rezultat dostaje spacje zamiast asd - niech ktos to skompiluje i zobaczy

s[0] zawiera dugo tylko dla ShortString (czyli stringa o dugoci do 255 znakw) :)
s[0] zawiera dugo tylko dla ShortString (czyli stringa o dugoci do 255 znakw) :)
