Задача по файлам 2.0 |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача по файлам 2.0 |
Eskel |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: Илья Репутация: 0 |
type Person = record Name : string [10]; age : 1..200 end; List = file of person; Процедура Youngest(var spisok : list) Вашей программы печатает Name для всех людей файла spisok , возраст которых равен минимальному. Перед списком печатается этот возраст.
=>Не подскажите, как создать и забить запись в файл. Создать то я понял как, а с файлом не очень... => И как потом считать эту запись с файла на проверку возраста? |
Eskel |
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: Илья Репутация: 0 |
спасибо, разобрался
|
Гость |
Сообщение
#3
|
Гость |
А можно с текстового файла в котром имена и даті, взять человека которій имеет определённую дату? тоисть надо взять даті и с ними работать. тхт файл уже есть. интересуєт возожно ли такое.
|
Гость |
Сообщение
#4
|
Гость |
вот типа написал, но что-то не то...
|
Lapp |
Сообщение
#5
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
вот типа написал, но что-то не то... Да, явно не то. Второй цикп даже не начнется, так как EoF уже достигнуто.Можно, конечно. Но нужно знать, как устроен этот текстовый файл. Приведи пример. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Гость |
Сообщение
#6
|
Гость |
в задании про файл больше ничего не сказано, но я его делал так
Цитата Yurko 81 1 Pavlo 82 2 Sergey 83 3 Sashko 84 4 |
Гость |
Сообщение
#7
|
Гость |
вобщем интересует часть віделенная жирнім. Пишет "Неверный числовой формат" не пойму почему...
Цитата uses crt; const n=10; type stud=record soname:string[15]; year,month:integer end; var F:text; St: string[35]; c:stud; begin clrscr; assign(F, 'example.txt'); reset(F); while not eof(F) do begin readln(F, c.soname); writeln(c.soname); end; readln(F); close(f); assign(F, 'example.txt'); reset(F); while not eof(f) do begin readln(f, c.month); if c.month=3 then writeln(c.soname:10, c.year:6); end; writeln; writeln('vivod s faila okon4en. to exit pres - Enter.'); readln; end. |
Lapp |
Сообщение
#8
|
|||
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Пишет "Неверный числовой формат" не пойму почему... Предельно ясно, почему . Ты открываешь файл заново и считываешь фамилию как число.Нужно все делать в одном цикле. while not eof(F) do with c do begin А когда ищешь: while not eof(F) do with c do begin
PS фамилия - это surname -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
Гость |
Сообщение
#9
|
Гость |
YAHOOO !!!!! Всё заработало!!! Спасиба что показали мне мои ошибки.
|
Гость |
Сообщение
#10
|
Гость |
Всё ж правильно, но последнюю переменную "х" не видит. Или віьбивает ошибку 106 (не числовой формат), или просто не віьводит! Что не так? Подскажите пожалуйста... |
Lapp |
Сообщение
#11
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Всё ж правильно, - увы, нет .Мой недогляд. Нельзя смешивать в одном списке оператора Read (ReadLn) строки и числа. Единственное исключение из этого правила - когда строковая переменная последняя. Если же строковая переменная стоит, скажем, первой, то в нее считывается вся строка из файла. И это естественно - пробел является разделителем чисел, но не строк. Строка должна заканчиваться концом строки (извини за тавтологию ). Поэтому нужно: 1. переделать чтение - вместо одного чтения сделать два: ReadLn(F, surname); 2. переделать формат файла данных: Иванов Но на мой взгляд лучше все же переменную x тоже в отдельную строку вынести (добавив, соответственно, еще один ReadLn) И это само по себе правильно и хорошо, так как исчезает проблема пробелов в строках - теперь можно в поле surname вводить несколько слов. Но если ты захочешь добавить, скажем, имя и отчество - снова развести их на разных строках и добавь ReadLn'ы. Еще раз извиняюсь за дезу.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Гость |
Сообщение
#12
|
|||
Гость |
я в файле данніьх пробовал каждую переменную с новой строчки писать, и не получалось. Ладно, сейчас буду пробовать как тіь написал. Спасибо за подсказку.
|
|||
Юрко |
Сообщение
#13
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Юрко Репутация: 0 |
Лень біьло регестрироваться. Вот, я здесь теперь. Совисть заиграла.
|
Текстовая версия | 27.09.2024 1:12 |