Показать сообщение отдельно
  #1  
Старый 05.08.2010, 18:57
Аватар для RoboStudent
RoboStudent RoboStudent вне форума
Прохожий
 
Регистрация: 05.08.2010
Адрес: Москва
Сообщения: 16
Репутация: 10
По умолчанию ExtractStrings и Memo

Доброго времени суток.
Ближе к делу. Процедура такова:
Считываем построчно содержимое Memo1 вида

1|100|150|1
1|100|170|0

и так далее. Разбиваем с помощью ExtractStrings строки, убирая знак "|".
Получаем 4 переменные, которые используются далее.
Проблема в следующем - если в Memo1 более одной строки, ругается не известно на что.
Просто пишет адрес памяти по которому ошибка. Я уже и типы крутил (ExtractStrings PChar хочет. String ему не нравится).
Думал, что может он #13#10 видит и не знает куда девать его.
В общем, вот код, подскажите пожалуйста, если кому не сложно.
PHP код:
procedure TForm1.Button4Click(SenderTObject);
var
  
slTStringList;
  
i,pauinteger;
  
tempPAnsiChar;
begin
  sl
:=TStringList.Create;
  for 
i:=0 to memo2.Lines.Count-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
Ответить с цитированием