18.03.2012, 09:35 | #1 (permalink) |
Member
Регистрация: 08.10.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Паскаль. Небольшой вопрос о файлах
Дан текстовый файл, необходимо в начало строки close, написать комментарий '{закрытие файла}' и вывести получившийся файл. эта часть программы работает отлично, но еще необходимо найти номер строки , куда вставляется этот комментарий, я сделала так, но почему то программа не работает. Пожалуйста , помогите найти ошибку! Заранее благодарю!!! program upr1; Var f1,f2:Text; s,s1,s2:String; k:integer; Begin s1:='{ çàêðûòèå ôàéëà }'; s2:='close'; Assign(f1,'ilgiza.txt'); Reset(f1); Assign(f2,'ilgiza2.txt'); Rewrite(f2); Repeat Readln(f1,S); If Pos(s2,S)=0 then Writeln(f2,S) else Writeln(f2,S1+S); Until eof(f1); Close(f1); Close(f2); reset(f2); k:=0; while not eof(f2)do begin readln(f2,s); writeln(s); end; while s<>s1 do k:=k+1; close(f2); writeln(k); End. мой вариант текстового файла. program upr1; var f:file of real; x,h,fx:real; begin assign(f,'func.dat'); rewrite(f); x:=0.5; h:=0.2; while (x<=2.5) do begin fx:=exp(ln(1+sqr(x))/3); write(f,x); write(x:5:3); x:=x+h; write(f,fx); writeln(fx:8:4); end; writeln('файл записан'); close(f); end. |
18.03.2012, 09:35 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Эти темы очень схожи с вашей и возможно в какой то из них проблема уже решена Мой первый небольшой мод Мой первый небольшой мод Небольшой мод. Небольшой мод корпуса Небольшой мод колонок |
18.03.2012, 10:22 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Исправил.
Главная ошибка - это то, что Вы забыли, что искомая строка изменилась (добавился комментарий), а поиск осуществляется по исходному тексту. Исправил. Кроме того, две мелочи-рекомендации: 1. По возможности, НЕ пользуйтесь кириллицей: сами видите, к чему это приводит - текст программы набран в кодировке UTF, в результате имеем крякозябры. 2. Ну применяйте Вы форматирование листингов (отступы, "лесенки" и т.п.): так неудобно читать программу, когда она вся в столбик! Вот что получилось (проверено, естественно): Код:
program upr1; Var f1,f2:Text; s,s1,s2,s3:String; k,k1:integer; Begin s1:='{ file closing }'; s2:='close'; Assign(f1,'ilgiza.txt'); Reset(f1); Assign(f2,'ilgiza2.txt'); Rewrite(f2); Repeat Readln(f1,S); If Pos(s2,S)=0 then Writeln(f2,S) else begin S3:=S1+S; Writeln(f2,S3); end; Until eof(f1); Close(f1); Close(f2); reset(f2); k:=0; while not eof(f2) do begin k:=k+1; readln(f2,s); writeln(k:2,' '+s); if s=s3 then k1:=k; end; close(f2); writeln; writeln('Number of changed string is ',k1); readln End. |
18.03.2012, 14:15 | #3 (permalink) |
Member
Регистрация: 08.10.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо Вам огромное!!!!!
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|