Помощь - Поиск - Пользователи - Календарь
Полная версия: Записи....
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Танкистка
Распечатать список учеников, фамилии которых начинаются на букву B, с указанием даты их рождения.

ВотЪ.... Такая несложная задачка... Я вот тут сама написала.. но у меня она не работает..и я наверно даже знаю почему... что-то неправильно наверно в последних строчках, где я фамилию на 'V' ищу... но как сделать по другому я не знаю... Я хотела написать if fam[1]='V' then.... но он мне пишет что переменная fam ему неизвестна.. вотЪ... вообщем я еще посижу подумаю.. но может кто-нить.. поможет.. это будет классно))) Пасибки..всем кто откликнется) yes2.gif


Type ychen=record
fam:string[10];
im:string[7];
data:record
year:1980..2000;
mon:1..12;
dat:1..31;
end;
end;
Var a:array[1..100] of ychen;
i,j:integer;
fin,fout:text;
begin
assign(fin,'e:\ych.txt');
reset(fin);
i:=0;
repeat i:=i+1;
with a[i] do
readln(fin,fam,im,data.year,data.mon,data.dat)
until eof(fin);
close(fin);
Assign(fout,'e:\famnaV.txt');
rewrite(fout);
for j:=1 to i do
if a[i].fam='V' then
writeln(fout,a[i].fam,a[i].data.year);
close(fout);
readln;
end.
volvo
Уверена, что вот это:
readln(fin,fam,im,data.year,data.mon,data.dat)
правильно заполняет массив? Присоедини свой TXT файл...
Танкистка
Цитата(volvo @ 21.12.2006 22:41) *

Уверена, что вот это:
readln(fin,fam,im,data.year,data.mon,data.dat)
правильно заполняет массив? Присоедини свой TXT файл...

Немнога не поняла,что ты имел ввиду... fin-это и есть txt-файл... или ты о другом...??

И еще вопрос ... я же сама заполняю файл..

Type ychen=record
fam:string[10];
im:string[7];
data:record
year:1980..2000;
mon:1..12;
dat:1..31;
end;
end;


Дак вот у меня вопрос... Допустим у меня есть ученик: Petrov Vasya 1984 10 4 Как мне его занести в файл, ведь у меня отводиться под фамилию 10 ячеек, т.е. мне надо написать Petrov а потом еще 4 пробела? А потом имя... а перед именем не надо еще пробела...??? а как цифры записывать? как там будет с пробелами??
мисс_граффити
Цитата
Дак вот у меня вопрос... Допустим у меня есть ученик: Petrov Vasya 1984 10 4 Как мне его занести в файл, ведь у меня отводиться под фамилию 10 ячеек, т.е. мне надо написать Petrov а потом еще 4 пробела? А потом имя... а перед именем не надо еще пробела...??? а как цифры записывать? как там будет с пробелами??

Никаких пробелов.
Судя по
readln(fin,fam,im,data.year,data.mon,data.dat)

там должно быть так:
Иванов
Иван
1989
04
15

Если ты пишешь все на одной строчке, получится бред.
Возможно, ошибка в этом. Поэтому volvo и попросил выложить твой заполненный файлик - посмотреть на структуру.

А ты уверена, что надо работать с текстовым, а не типизированным файлом?
Танкистка
ну да .. скорее всего.. он нам проста на уроке что-то говорил,как строки заполнять.. типа скока пробелов.. и все это он делал в одной строчке...
мисс_граффити
тогда не readln используй, а read
volvo
Цитата(мисс_граффити @ 23.12.2006 11:05)
Судя по
readln(fin,fam,im,data.year,data.mon,data.dat)

там должно быть так:
Иванов
Иван
1989
04
15

Правда? smile.gif Смотри...
Вот программа:
var
f: text;
a, b, c, d: string;
begin
assign(f, 'test.txt'); reset(f);
readln(f, a, b, c, d);
close(f);

writeln(a, ' ', b, ' ', c, ' ', d, ' ');

end.

Вот содержимое TEST.TXT:
Цитата(test.txt)
the_a
the_b
the_c
the_d
<пустая строка>
Внимание, вопрос: "Что будет выведено на экран"?

Я бы попросил НЕ пользоваться компилятором!
мисс_граффити
то есть конструкции
readln(a);
readln(b);

и
readln(a,b);

работают по-разному?
Во втором случае для завершения работы оператора нужен только один признак конца строки?
volvo
Цитата
работают по-разному?
При работе с файлами - да...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.