Контрольная работа: Обработка одномерных массивов в среде программирования Lazarus
В приведенном ниже фрагменте программы вначале в строку st записывается содержимое всего окна memo1. Затем отыскивается позиция конца первой строки (n) и эта строкакопируетсяв st1 и удаляетсяиз st. На рисунке 3 приведен результат работы программы.
procedureTForm1.Button1Click(Sender: TObject);
var
st,st1:string;
n:integer;
begin
st:=memo1.Text;
n:=pos(#13,st);
st1:=copy(st,1,n-1);
label1.Caption:='Первыйэлемент = '+st1;
delete(st,1,n+1);
ShowMessage('остальныеэлементы:'+#13+st);
end;
Рисунок 3 - Результат обработки memo . text
Приведенный выше пример не учитывает того обстоятельства, что любая подстрока может содержать любое количество пробелов. Их нужно удалить перед преобразованием строки в число.
Функция GetLine возвращает подстроку с номером n из строки.
Function GetLine(s:string;n:integer):string;
var
p:integer;
begin
{удалить пробелы в начале строки}
While (pos(' ',s)=1)and (length(s)>0) do
delete(s,1,1);
if n>1 then
repeat
p:=pos(#13,s);
if p<>0 then
begin
s:=copy(s,p+2,length(s)-p);
While (pos(' ',s)=1)and (length(s)>0) do