Дан текстовый файл. В каждой его строке сначала идет текст, а потом - вещественное число. Создать два файла: файл, содер - 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.
Объяснение кода листинга программы
- Объявлены четыре переменные: f, g, h (файловые переменные) и s, s1 (строковые).
- Файл f открыт на чтение, файлы g и h открыты на запись.
- В цикле while с условием not eof(f) происходит чтение строк из файла f.
- В каждой итерации цикла в переменную s считывается очередная строка.
- Переменная s1 инициализируется пустой строкой.
- Переменная i инициализируется значением 1.
- В цикле while, который выполняется до тех пор, пока i меньше длины строки s и символ i не является числом, к переменной s1 добавляется очередной символ строки s.
- Значение i увеличивается на 1.
- После окончания внутреннего цикла, из строки s удаляется строка s1 (удаление происходит с первого символа до последнего включительно).
- В цикле while выводятся на запись в файл g строка s1, а в файл h - строка s.
- После окончания внешнего цикла, файлы f, g, h закрываются.
- Код завершается.