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

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

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

 
 Ответить  Открыть новую тему 
> работа с файлами, помогите курсовая горит
-student-
сообщение 15.05.2005 16:31
Сообщение #1


Гость






Написать программу, позволяющую по выбору создавать, находить, переименовывать, дополнять, читать, удалять файл и записывать информацию в файл

помогите плиз, у меня полдная муть получается , кроме процедур создания и удаления файла другие не работают,а процедура дополнения файла вообще не получается

вот моя прога:


 uses dos,crt;

var
infile:text;
vibor:char;


procedure makefile;
var

i,maxn,m:integer;
begin
clrscr;
assign(infile,'c:\file');
rewrite(infile);
writeln('сколько вводится символов');
readln(maxn);
write(infile,maxn);

for i:=1 to maxn do
begin
read(m);
write(infile,m);
end;
close(infile);
end;

procedure chtenie;

var

i:integer;
a:array[1..100] of integer;



begin
assign(infile,'c:\file');
reset(infile);
for i:=1 to 5 do
while not(eof(infile)) do
begin
read(infile,a[i]);

writeln('k=',a[i]);
close(infile);
end;
end;

procedure pename;
var
newname:string;

begin
assign(infile,'C:\file');
reset(infile);
readln(newname);
rename(infile,newname);
close(infile);
end;

procedure udalenie;

begin
assign(infile,'c:\file');
reset(infile);
close(infile);
erase(infile);
end;

procedure found;

begin
assign(infile,'c:\file');
fsearch('file','c:\');
end;



begin

makefile;
writeln('созданный файл - c:\file');

writeln('переименовать-1;найти-2;дополнить-3;удалить-4;читиать-5 файл');
readln(vibor);

case vibor of
'1': pename;
'2': found;
'4': udalenie;
'5': chtenie;
end;


readln;




end.

теги...

Сообщение отредактировано: Oleg_Z - 15.05.2005 17:50
 К началу страницы 
+ Ответить 
volvo
сообщение 15.05.2005 18:05
Сообщение #2


Гость






-student-,
а что, для удаления файла нужно обязательно файл открыть, закрыть, и только потом удалить? Просто Assign не достаточно?

Кстати, для переименования файл должен быть закрыт, переименовать открытый файл нельзя...

При "поиске" файла все-таки должна быть функция, а не процедура... Тебе же нужно получить путь к файлу...

Для дополнения текстового файла открывай его через Append, а не Reset ...
 К началу страницы 
+ Ответить 
NightPaladin
сообщение 15.05.2005 19:02
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 67
Пол: Мужской

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


Вот выложил свои наброски (пока без поиска -его завтра):
Код
program File_Worck;
Uses
    CRT;
var
    ExF1  :  Text;
    ExF2  :  Text;
    Com   :  String[6];
{Їа®жҐ¤га  б®§¤ ­Ёп}
procedure Create;
var
    Path  :  String;
begin
    WriteLn('input path:');
    TextColor(red);
    Write('path:>_');
    ReadLn(Path);
    Assign(ExF1,path);
    ReWrite(ExF1);
    Close(ExF1);
end;


procedure ReadQ;
const
    MaxN = 50;
type
    Massive = array[1..MaxN] Of Integer;
var
    Path   :  String;
    mas    :  Massive;
    str    :  String;
begin
    WriteLn('input path:');
    TextColor(red);
    Write('path:>_');
    ReadLn(Path);
    Assign(ExF1,path);
    Reset(ExF1);
                ReadLn(ExF1, str);
    Close(ExF1);
end;

procedure WriteQ;
var
    Path  :  String;
    str   :  String;
begin
    WriteLn('input path:');
    TextColor(red);
    Write('path:>_');
    Read(Path);
    str:= 'Pascal_creating_file';
    Assign(ExF1,path);
    ReWrite(ExF1);
                WriteLn(ExF1, str);
    Close(ExF1);

end;

procedure AppendQ;
var
    Path  :  String;
    str   :  String;
begin
    WriteLn('path:');
    TextColor(red);
    Write('path:>_');
    Read(Path);
    str:= 'the_append_string';
    Assign(ExF1,path);
    Append(ExF1);
                WriteLn;
                WriteLn(ExF1, str);
    Close(ExF1);

end;

procedure ReNameQ;
var
    Path  :  String;
    Name  :  String;
    Temp  :  String;
begin
    WriteLn('path:');
    TextColor(red);
    Write('path:>_');
    Read(Path);
    name:= 'C:/new_name.txt';

    Assign(ExF1,path);
    reset(ExF1);

    Assign(ExF2, name);
    ReWrite(ExF2);
                repeat
                      ReadLn(ExF1,Temp);
                      WriteLn(ExF2,Temp);
                until Not EOF(ExF1);

    Close(ExF1);
    Close(ExF2);
end;
begin
    ClrScr;
             WriteLn('input command:');
             TextColor(green);
             WriteLn('create  ');
             WriteLn('read    ');
             WriteLn('write  ');
             WriteLn('append');
             WriteLn('rename ');
             WriteLn;
             TextColor(red);
             Write('command:>_');
             ReadLn(com);

             If com = 'create'         then Create
                Else If com = 'read'   then ReadQ
                Else If com = 'write'  then WriteQ
                Else If com = 'append' then AppendQ
                Else If com = 'rename' then ReNameQ;
             
    ReadKey;
end.


Сообщение отредактировано: NightPaladin - 15.05.2005 19:04


--------------------
На горе лежит дискета
У неё испорчен boot
Через дырочку в конверте
Её вирусы грызут
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 15.05.2005 19:47
Сообщение #4


Гость






Ребята, вы что творите?
Процедуру Rename что, просто так включили в Паскаль? Не надо ничего изобретать, все проще гораздо !!!

procedure myRename;
var newname:string;
begin
assign(infile,'C:\file');
readln(newname);
rename(infile,newname);
end;


-student-, только учти, что Rename будет работать корректно только в пределах одного и того же диска...
 К началу страницы 
+ Ответить 
-student-
сообщение 15.05.2005 20:35
Сообщение #5


Гость






большое спасибо за помощь
если не сдам курсовик то на осень оставят
 К началу страницы 
+ Ответить 
Guest
сообщение 15.05.2005 21:29
Сообщение #6


Гость






при таком решении выдает ошибку : Path no found
 К началу страницы 
+ Ответить 
volvo
сообщение 15.05.2005 21:36
Сообщение #7


Гость






А это смотря какой Path smile.gif
 К началу страницы 
+ Ответить 
NightPaladin
сообщение 16.05.2005 5:33
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 67
Пол: Мужской

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


Цитата
Ребята, вы что творите?
Процедуру Rename что, просто так включили в Паскаль? Не надо ничего изобретать, все проще гораздо !!!

Извеняюсь - это я посмотрел как сдела студент ирешил, что "мы пойдём другим путём'' :D . И начал вот это вот - из одного читаем, создаём новый с новым именем - всё в него копируем и старый удаляем. Мда рациональностью не блещет... smile.gif


--------------------
На горе лежит дискета
У неё испорчен boot
Через дырочку в конверте
Её вирусы грызут
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Дож
сообщение 16.05.2005 18:58
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

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


Цитата
А это смотря какой Path


В строчке 4 твоего кода ;):

Код

{1:}procedure myRename;
{2:}var newname:string;
{3:}begin
{4:}assign(infile,'C:\file'); {<--Здесь естественно}
{5:}readln(newname);
{6:}rename(infile,newname);
{7:}end;


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 16.05.2005 19:20
Сообщение #10


Гость






Цитата(Дож @ 16.05.05 18:58)
В строчке 4 твоего кода

Спасибо за напоминание, но имелось в виду "Смотря какой Path <введен>"...
 К началу страницы 
+ Ответить 
Дож
сообщение 16.05.2005 19:58
Сообщение #11


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

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


У меня предположение, что он забыл указать расширение(судя по начальному коду)... А за это паскаль так и ругается ;) .


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 19.07.2025 21:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"