![]() |
Модераторы: volvo877, Snowy, MetalFan |
![]() ![]() ![]() |
|
Гость_olja |
|
|||
Unregistered |
ПОМОГИТЕ!!! НЕ МОГУ НИЧЕГО ПОНЯТЬ, КАК РЕШИТЬ ДОБАВИТЬ В ФАЙЛ ЗАПИСИ, ЗАПИСЬ, КОТОРУЮ ДОБАВЛЯЮ ВЫВОДИТЬСЯ, А ОСТАЛЬНОЕ КАКЯ-ТО ЕРУНДА.
Procedure dobavl(var f:stud); var i,n,q,j:integer; a:spisoktel;b:mas; begin reset(f); writeln(' posle chego dobavit?'); readln(i); j:=i; seek(f,j+1); while not eof (f) do begin read(f,b[i]); i:=i+1; end; seek(f,j+1); write('familija studenta '); readln(a.famil); write('imja studenta '); readln(a.imja); write('otchestvo studenta '); readln(a.otch); write('adres studenta: gorod '); readln(a.adres.gorod); write('dom '); readln(a.adres.dom); write('nomer telefona '); readln(a.adres.nomertel); write(f,a); for q:=j to i do write(f,b[q]); close(f); end; ![]() |
|||
|
||||
Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: нет Всего: 7 |
На первый взгляд вроде как верно, вот только
Кажется лишнюю запись берешь с начала. А вообще решение сложное у тебя - надо попробовать скомпилить пример, попробовать --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
remax |
|
|||
![]() Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
1) А какой размер массива b:mas?
Т.е. Вы используете статический массив, тип которого определен примерно так mas:array[1..100] of stud; Если число записей в файле больше размера в массиве (в данном случае > 100), то проблемы гарантированы (особенно, если отключена проверка выхода за границы массива) 2) А кто сказал, что тип stud эквивалентен типуspisoktel? ![]() А посмотрите, что Вы делаете - записываете в типизированый файл (тип stud) переменную типа spisoktel!!!! А еще, убедитесь, что тип элементов массива совпадает с типом файлов!! ![]() -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
MacTep |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Я тут кое-что похожее наметал. Посмотрите, может поможет!
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
Underdark |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 12.7.2004 Где: Ульяновск Репутация: нет Всего: 2 |
Procedure dobavl(var f:stud);
var i,n,q,j:integer; a:spisoktel;b:mas; begin reset(f); writeln(' posle chego dobavit?'); readln(i); j:=i; seek(f,j+1); while not eof (f) do begin read(f,b[i]); i:=i+1; end; seek(f,j+1); write('familija studenta '); readln(a.famil); write('imja studenta '); readln(a.imja); write('otchestvo studenta '); readln(a.otch); write('adres studenta: gorod '); readln(a.adres.gorod); write('dom '); readln(a.adres.dom); write('nomer telefona '); readln(a.adres.nomertel); write(f,a); for q:=j to i do write(f,b[q]); close(f); end; _____ - не забывай, что первая запись в файле seek(f,0)!!! _____ - у тебя выводится на две записи больше, т.к. последняя i - была, когда eof (f)=true, и начинать цикл надо со значения j+1; И действительно...
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |