Дан текстовый файл. В каждой его строке сначала идет текст, а потом - вещественное число. Создать два файла: файл, содер - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Дан текстовый файл. В каждой его строке сначала идет текст, а потом - вещественное число. Создать два файла: файл, содержащий текстовую часть исходного файла, и файл, содержащий числа из исходного файла

Решение задачи: «Дан текстовый файл. В каждой его строке сначала идет текст, а потом - вещественное число. Создать два файла: файл, содер»

textual
Листинг программы
var f,g,h:text;
    s,s1:string;
    i:integer;
begin
assign(f,'text.txt');//файл в папке с программой
reset(f);
assign(g,'text1.txt');
rewrite(g);
assign(h,'text2.txt');
rewrite(h);
while not eof(f) do
 begin
  readln(f,s);
  s1:='';
  i:=1;
  while(i<length(s))and not(s[i] in ['0'..'9'])do
   begin
    s1:=s1+s[i];
    i:=i+1;
   end;
  delete(s,1,length(s1));
  writeln(g,s1);
  writeln(h,s);
 end;
 close(f);
 close(g);
 close(h);
 end.

Объяснение кода листинга программы

  1. Объявлены четыре переменные: f, g, h (файловые переменные) и s, s1 (строковые).
  2. Файл f открыт на чтение, файлы g и h открыты на запись.
  3. В цикле while с условием not eof(f) происходит чтение строк из файла f.
  4. В каждой итерации цикла в переменную s считывается очередная строка.
  5. Переменная s1 инициализируется пустой строкой.
  6. Переменная i инициализируется значением 1.
  7. В цикле while, который выполняется до тех пор, пока i меньше длины строки s и символ i не является числом, к переменной s1 добавляется очередной символ строки s.
  8. Значение i увеличивается на 1.
  9. После окончания внутреннего цикла, из строки s удаляется строка s1 (удаление происходит с первого символа до последнего включительно).
  10. В цикле while выводятся на запись в файл g строка s1, а в файл h - строка s.
  11. После окончания внешнего цикла, файлы f, g, h закрываются.
  12. Код завершается.

Оцени полезность:

11   голосов , оценка 3.545 из 5
Похожие ответы