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

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

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

> Обработка файла, Создание и обработка файла
сообщение
Сообщение #1


Новичок
*

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

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


Доброго времени суток! Такая задача:
"Дан файл, содержащий сведения об автомобилях: марка, номер и фамилия владельца. Найти фамилии владельцев и номера всех автомобилей данной марки."
Прога написана. Но я не могу правильно создать к ней файл. Пробовал вводить в файл построчно такую инфу: MERCEDES А001АА Путин. А он ругается, что предпринята попытка чтения после конца файла. Так как мне создать файл и в нём ли проблема?

Const n=10;
found:boolean=false;
Type info=record
brand:string[15];
number:string[15];
surname:string[15];
end;
Var car:info;
f:file of info;
z:string[20];
i:1..n;
Begin
assign(f,’car.txt’);
reset(f);
write(‘Введите заглавными буквами марку автомобиля: ‘);
readln(z);
wile not EoF(f)do
begin
read(f,car);
with car do
if brand=z then
begin
found:=true;
writeln(surname:20,number:20)
end
end;
if not found then write (‘Автомобиль данной марки не найден: ‘);
Readln
End.


Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 9)
сообщение
Сообщение #2


Гость






R@f, чтобы вводить в файл информацию, надо пользоваться вот такой процедурой:


Type
info=record
brand:string[15];
number:string[15];
surname:string[15];
end;

Var
f: file of info;

Procedure CreateFile(name: string);
var r: Info;
begin
assign(f, name);
rewrite(f);

repeat
with r do begin
write( 'auto: ' ); readln(brand); { Для окончания ввода данных - пустая строка }
if brand <> '' then begin
write( 'number: ' ); readln(number);
write( 'surname: ' ); readln(surname);
write(f, r);
end;
end;
until r.brand = '';

close(f);
end;

begin
CreateFile('car.txt');
end.


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

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Volvo, что-то не получается ничего. Эту процедуру вставить в свою прогу или создать новую? Если в свою, то куда именно?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Зависит от того, нужно ли тебе каждый раз создавать файл заново (тогда вставляй в свою программу) или достаточно создать его один раз и потом им пользоваться многократно (тогда - отдельно)...

Что именно не получается? Посмотри выше, я сделал из своей процедуры полноценную программу...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Ну всё, вроде домучил, прога просто супер – справочник. yes2.gif Спасибо, большое. В этом файле каракули – это так и должно быть, скорее всего? Можно их нормально прочитать, кодировку сменив что ли?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
В этом файле каракули – это так и должно быть, скорее всего?

yes2.gif
Цитата
Можно их нормально прочитать, кодировку сменив что ли?

Нет, я только сегодня уже отвечал на подобный вопрос smile.gif

Только открывая файл как типизированный и читая запись за записью...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


У меня последний вопрос. Как делать, чтоб связывая файл с переменной assign(f,’car.txt’) не писать допустим 'C:\BP\car.txt’ а работать с катологом, в котором сохранён исходник проги? По идее надо писать просто ’car.txt’. Но паскаль не хочет так работать. Может где-то в настройках надо опцию какую-то с каталогом настроить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Perl. Just code it!
******

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

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


для этого файл должен находиться в одной папке с экзешником ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

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

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


Как экзешник создать тогда?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Меню -> Compile -> Destination выбрать "Disk", еще раз откомпилировать программу, и искать EXE-файл в папке, записанной в
Options -> Directories -> EXE & TPU Dir
 К началу страницы 
+ Ответить 

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

 





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