Wbrew pozorom nie jest to takie proste, kiedy robie tak:
var
i,o : Integer;
begin
for i := 0 to Memo1.Lines.Count-1 do
begin
if memo1.lines[i] = '' then
memo1.lines.delete(i);
i mam pytanie dlaczego ta procedura nie dziala?
Wbrew pozorom nie jest to takie proste, kiedy robie tak:
var
i,o : Integer;
begin
for i := 0 to Memo1.Lines.Count-1 do
begin
if memo1.lines[i] = '' then
memo1.lines.delete(i);
i mam pytanie dlaczego ta procedura nie dziala?
i:=0;
with Memo1 do while i<Lines.Count-1 do if Lines[i]='' then Lines.Delete(i) else Inc(i);
jeżeli pominąć to, że jest to niepełny zapis procedury, to wg mnie wszystko działa - zapewne coś nagmatwałeś w następnych liniach kodu
A najprościej w takich sytuacjach iść w drugą stronę od Count-1 downto 0.
a czy w ten sposób pozbędziesz się ostatniej pustej linii w memo?
MiM napisał(a)
a czy w ten sposób pozbędziesz się ostatniej pustej linii w memo?
Tak. Z użyciem pętli "for" oczywiście. Ostatnie sprawdzenie będzie dla zera i w razie potrzeby zostanie skasowane. Część "else" jest niepotrzebna. Pętla for x:=a to a do lub for x:=a downto a do wykonuje się jeden raz w Pascalu.