Доброго времени суток.
Ближе к делу. Процедура такова:
Считываем построчно содержимое Memo1 вида
1|100|150|1
1|100|170|0
и так далее. Разбиваем с помощью ExtractStrings строки, убирая знак "|".
Получаем 4 переменные, которые используются далее.
Проблема в следующем - если в Memo1 более одной строки, ругается не известно на что.
Просто пишет адрес памяти по которому ошибка. Я уже и типы крутил (ExtractStrings PChar хочет. String ему не нравится).
Думал, что может он #13#10 видит и не знает куда девать его.
В общем, вот код, подскажите пожалуйста, если кому не сложно.
PHP код:
procedure TForm1.Button4Click(Sender: TObject);
var
sl: TStringList;
i,pau: integer;
temp: PAnsiChar;
begin
sl:=TStringList.Create;
for i:=0 to memo2.Lines.Count-1 do // -1, так как в Memo лишняя строка пустая вечно появляется
begin
temp:=pchar(memo2.Lines[i]);
try ExtractStrings(['|'],[' '],temp,sl); //вот и разбивка
if sl[0]=('1') then begin //при отладке матерится именно на эту строку
if CheckBox2.Checked=True then begin Application.ProcessMessages(); end;
pau:=strtoint(sl[3]);
if pau > 0 then begin
memo1.Lines.Add('['+timetostr(now)+'] Pause '+inttostr(pau)+' sec.');
sleep(pau*1000);
end;
dothis(strtoint(sl[1]),strtoint(sl[2])); //моя функция, с ней всё хорошо
end;
finally
sl.Free;
end;
end;
end;