Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Файлы...

Автор: Alla 23.01.2006 20:24

- дано имя файла и целые положительные числа N и K. Создать текстовый файл с указанным именем и записать
в него N строк, каждая из которых состоит из K символов *;
- дана строка S и текстовый файл. Добавить строку S в начало файла;
- дано целое число К и текстовый файл; сформировать новый файл, удалив из исходного файла строку с
номером К, если строки с таким номером нет, то переписать файл без изменений.

Решение первой задачи я осилила, но две последние не даются никак. Очень прошу спасите меня mega_chok.gif

Код

program test;
uses crt;
var
f : text;
k, n, i, j : integer;
s : char;
begin
clrscr;
writeln('Enter kol-vo strings: ');
readln(n);
writeln('Enter kol-vo symbools: ');
readln(k);
assign(f,'file1.txt');
rewrite(f);
for i:=1 to n do
  for j:=1 to k do
   begin
   readln(s);
   write(f,s);
   end;
  readln;
end.

Автор: Altair 24.01.2006 5:57

Цитата
- дана строка S и текстовый файл. Добавить строку S в начало файла;

реализуется следующим образом - переписываем все в новый файл, потом старый удаляем, и новый переименовываем в старый.

var

oldfile,newfile:text;
name,tempname,ts,s:string;
begin
s:='1 stroka';
name:='in.txt';
tempname:='temp.dat';
assign(oldfile,name);
assign(newfile,tempname);
reset(oldfile);
rewrite(newfile);
writeln(newfile,s);
while not eof(oldfile) do begin
readln(oldfile,ts);
writeln(newfile,ts);
end;
close(oldfile);
close(newfile);
erase(oldfile);
rename(newfile,name);
end.

Цитата

- дано целое число К и текстовый файл; сформировать новый файл, удалив из исходного файла строку с
номером К, если строки с таким номером нет, то переписать файл без изменений.

то же самое, создай временный файл, и его сформируй. А потом перекинь все в старый.

Автор: Alla 24.01.2006 12:21

Cпасибо тебе Альтаирчик wub.gif

Автор: Гость 24.01.2006 20:02

Со второй задачей в принципе все понятно за исключением одного, мне ведь надо удалить строку не введением строковой переменной(как в FAQ), а введением целого числа - номера строки:
тоесть как я поняла мне надо:
1. Ввести номер строки
2. Сформировать новый файл считать из старого содержимое в перменную за исключением одной строки, записать из пременной в новый файл.
3. Удалить старый и переименовать новый

Вопрос возникает по второму пункту, как посчитать строки и тем самым указать какую удалить???

Автор: Altair 24.01.2006 20:11

Цитата
Сформировать новый файл считать из старого содержимое в перменную за исключением одной строки, записать из пременной в новый файл.

i:=0;
while not eof(f) do begin {читаем пока не конец файла }
readln(f,s); {прочли строку}
inc(i); {увеличили i }
if k<>i then writeln(g,s); {если не та строка что нужно пропустить то записываем}
end;


смысл понятен ?

Автор: Гость 24.01.2006 20:14

Все OK, поняла. Еще раз БИГ сэнкс smile.gif

Автор: Alla 24.01.2006 21:14

Вроде все правильно написала, а строка удаляться никак не хочет ...

Код

program test;
uses crt;
var
f,g : text;
k,i : integer;
s:string;

begin
clrscr;
assign(f, 'file1.txt');
assign(g, 'file2.txt');
writeln('Vvedite nomer udalayemoy stroki');
readln(k);

repeat
writeln('Vvod file');
readln(s);
until s<>'.';
i:=0;
rewrite(f);
writeln(f,s);
close(f);
reset(f);
while not eof(f) do begin
   readln(f,s);
   inc(i);
   if k<>i then
   reset(g);
   rewrite(g);
   writeln(g,s);
   close(g);
end;

erase(f);

end.

Автор: volvo 24.01.2006 21:23

blink.gif Чего это было?

Может, лучше так:

program test;
uses crt;
var
f,g : text;
k,i : integer;
s:string;

begin
clrscr;
assign(f, 'file1.txt'); rewrite(f);
assign(g, 'file2.txt'); rewrite(g);


writeln('Vvedite nomer udalayemoy stroki');
readln(k);

writeln('Vvod file');
repeat
readln(s);
if s <> '.' then
writeln(f, s);
until s = '.';

i:=0;
reset(f);

while not eof(f) do begin
inc(i);
readln(f,s);
if k<>i then writeln(g,s);
end;
close(f);
close(g);

erase(f);
{
rename(g, 'file1.txt');
}
end.

Автор: Гость 24.01.2006 21:29

То есть моя ошибка: преборщила с циклом, не надо было там писать rewrite... Поняла, спасибо .

Автор: will viagra show up on a drug te 3.11.2021 5:04

Finasteride Sample

Автор: how long does it take for gabape 4.12.2021 11:24

Buy Olanzapine