Хвостові прогалини
підкажіть як відкинути хвостові прогалини в рядку
Навіщо відкидати, він же знову відросте!
А якщо серйозно:
procedure LTrim(var s: string);
while ((length(s) > 0) and
procedure RTrim(var s: string);
while ((length(s) > 0) and
(s[Length(s)] = #32)) do
Delete(s, Length(s), 1);
procedure Trim(var s: string);
>[3] SerJaNT(c) 6-Oct-2006, 04:17більше такого не пиши. нехай вивчати стандартні бібліотеки. %-)
Втім, Думкін у [11] вже відповів :)
Ну наприклад за таким принципом: . i:=length(a); while a[i]=#32 and i>0 do dec i; setlength(a,i); .
> while a[i]=#32 and i>0 do dec i;while (i>0) and (a[i]=#32) do dec i;
function ltrim(s: string): string; var i, x: integer; begin result := ""; if s = "" then exit; i: = 0; for x := 1 to length(s) do if s[x] = " " then inc(i) else break; if i > 0 then delete(s, 1, i); result := s; end;
function rtrim(s: string): string; var x, i: integer; begin result := ""; if s = "" then exit; i: = 0; for x := length(s) downto 1 do if s[x] = " " then inc(i) else break; if i > 0 then delete(s, x + 1, i); result := s; end;
знаю. просто писав прямо на форум і не думав про правильно синтаксис. до речі, там ще одна синтаксична помилка є.
А чи компілятор не лається на використання змінної циклу for за межами циклу?
замість if s[x] = " " слід писати if Ord(s[x])
У [0] йшлосятількипро прогалини.
> лічильник циклу використовується поза його межамиа чому не можна використовувати?
> а пояку причину не можна використовувати?для тебе в першу чергу через попередження компілятора
Зрозуміло, цього я не знав. У принципі в моєму коді можна використовувати лічильник (i)
Без телепатора можна тільки здогадуватися, але не знати напевно.
Це не лічильник циклу, а звичайна змінна, тож нормально.