|  | 
 
 | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  аварийный выход продолжаю самостоятельно осваивать Delphi. Написал программу, ошибок не выдаёт, но аварийно завершается. Наверное, что-то не понимаю  в вариантах. помогите, кому не трудно. Дан файл, надо цифры записать в memo1 , а буквы в memo2. Код:  procedure TForm1.Button1Click(Sender: TObject);
var fi1:file;
    buf1:variant;
    chislo:chis;
    k1:integer;
begin with od1 do
  if execute
  then e1.Text:=extractFiledir(od1.FileName)+filename;
 assignFile(fi1,od1.FileName); {$I-} reset(fi1,1); {$I+}
 k1:=0;
 repeat BlockRead(fi1, Buf1,sizeOf(buf1),k1);
   if VarIsEmpty(buf1)=false
   then if VarType(buf1) in chislo
        then red1.lines.Add(buf1)
        else if buf1<>' '
             then red2.lines.Add(vartostr(buf1));
  until (k1<>0) or (k1<>10);
end; | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   В BlockRead в качестве буфера обычно передают массив либо выделенную область памяти (которую потом нужно освободить). А дальше этот массив уже можно побайтно разбирать, где там цифры, где буквы. Вот тут описание BlockRead и пример чтения файла побайтно (неожиданная ссылка): http://www.delphisources.ru/pages/fa...kRead.php.html Проверить, что символ является цифрой: Код: if AChar in ['0'..'9'] then... буквой: Код: if AChar in ['a'..'z', 'A'..'Z'] then... |