Помогите составить программу работающую с текстовым файлом...

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Помогите составить программу работающую с текстовым файлом...

Re: Помогите составить программу работающую с текстовым файлом...

somewhere » 27 фев 2007, 16:38

&quot писал(а):Понятно. В паскале таких процедур нет...
Это собственно не процедуры, а директивы компилятора, т.с. Predefined keywords - но все-равно оффтоп получается ;-)

Re: Помогите составить программу работающую с текстовым файлом...

Колядин Максим » 27 фев 2007, 15:32

Понятно. В паскале таких процедур нет...

Re: Помогите составить программу работающую с текстовым файлом...

Хыиуду » 27 фев 2007, 11:15

Вот сейчас не скажу точно, есть ли это в Паскале или нет, в Дельфи точно есть. Это процедуры обработки прерываний. Выглядит это так:

Код: Выделить всё

Попытаться выполнить
for i:=1 to num do readln(f,s);
Если при выполнении предыдущего блока возникла ошибка, закончить его выполнение и выполнить
s:='Строки с таким номером в файле нет';
После окончания обоих блоков (не важно, произошла ли в первом ошибка, или нет), выполнить
writeln(s);
end;

Re: Помогите составить программу работающую с текстовым файлом...

Колядин Максим » 27 фев 2007, 01:10

Хыиуду писал(а):try
for i:=1 to num do readln(f,s);
except
s:='Строки с таким номером в файле нет';
finally
writeln(s);
end;
Хыиуду, а что это за Try, expect, finally. Никогда не сталкивался с такими процедурами...

Re: Помогите составить программу работающую с текстовым файлом...

Хыиуду » 26 фев 2007, 10:23

Ну так тогда и надо писать: вывести строку в файле, номер которой задан пользователем.
{открытие файла}
try
for i:=1 to num do readln(f,s);
except
s:='Строки с таким номером в файле нет';
finally
writeln(s);
end;

Re: Помогите составить программу работающую с текстовым файлом...

Philin » 26 фев 2007, 07:29

Хыиуду писал(а):По-моему, №3 делается так:
readln(s);
writeln(s);
Ошибок тут возникнуть все равно не может. Только непонятно, при чем тут файл.
Это как я понимаю вводиться номер строки в файле, а потом эта строка из файла. Ошибка возможна если нет такой строки

Re: Помогите составить программу работающую с текстовым файлом...

Колядин Максим » 24 фев 2007, 15:32

Сообщение от Хыиуду
Только непонятно, при чем тут файл.
Обрати внимание, писал в 3 часа ночи, спешил и по-привычке написал var f: fille. Надеюсь, зная что речь идёт о текстовых файлах, он поймёт, что переменная F должна иметь тип text...

Re: Помогите составить программу работающую с текстовым файлом...

Хыиуду » 24 фев 2007, 12:09

По-моему, №3 делается так:
readln(s);
writeln(s);
Ошибок тут возникнуть все равно не может. Только непонятно, при чем тут файл.

Re: Помогите составить программу работающую с текстовым файлом...

Колядин Максим » 24 фев 2007, 03:18

1. Программа дополняет существующие файлы информацией;
Здесь удобнее было бы процедеру, дополняющую соответствующую информацию. info - переменная типа string, содержащая информацию. S - тоже имеет тип string. Она содержит имя связывымаго на внешнем носителе файла.

Код: Выделить всё

uses crt, WinDos;
var info, s: string;
di: TSearchRec;
f: text;
procedure add_information;
begin
s:=di.name;
assign(f,s);
append(f);
writeln(f, info);
close(f);
end;

begin
clrscr;
write('Введите информацию которую нужно добавить: ');
readln(info);
findfirst('*.txt', faAnyfile, di);
if DosError=0 then add_information;
while DosError=0 do begin
findnext(di);
add_information;
end;
end.
2. Выводит на экран существующие файлы;
2. Здесь также используется модуль WinCrt.

Код: Выделить всё

uses crt, windos;
var di: TSearchRec;
begin
clrscr;
findfirst('*.txt', faAnyFile, di);
while DosError=0 do begin
writeln(di.name);
findnext(di);
end;
readkey;
end.
3. Выводит на экран строку, заданную пользователем (предусмотреть защиту от ошибок);

Код: Выделить всё

uses crt;
var f: file;
i,pos: integer;
s: string;
begin
assign(f, 'stroka.txt'); {$I-}reset(f);{$I+}
if IOResult<>0 then write('Файл не существует.');
write('Введите номер строки: ');
readln(pos);
for i:= 1 to pos do readln(f,s);
while not eoln(f) do begin
read(f,s);
write(s);
end;
readkey;
end.

Помогите составить программу работающую с текстовым файлом...

skynet » 23 фев 2007, 09:47

Задача программы [Pascal]:
1. Программа дополняет существующие файлы информацией;
2. Выводит на экран существующие файлы;
3. Выводит на экран строку, заданную пользователем (предусмотреть защиту от ошибок);

Буду благодарен за исходный код программы [Pascal].

Вернуться к началу