IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Файлы...
сообщение
Сообщение #1


Гость






- дано имя файла и целые положительные числа 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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
- дана строка 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.

Цитата

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

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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Cпасибо тебе Альтаирчик wub.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






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

Вопрос возникает по второму пункту, как посчитать строки и тем самым указать какую удалить???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


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

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


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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Все OK, поняла. Еще раз БИГ сэнкс smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






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

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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






То есть моя ошибка: преборщила с циклом, не надо было там писать rewrite... Поняла, спасибо .
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Finasteride Sample
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Buy Olanzapine
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 16:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name