Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2010, 01:26   #1
Neroaz
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 36
По умолчанию Редактирование записей в файле

Редактирование записей в типизированном файле
Как это осуществить?
Допустим в файле xxx.dat есть 5 строчек (или FileSize(F)=5)
я выбираю в combobox1.itemindex=1 //элемент с названием: 2
т.е. я выбираю вторую строчку для редактирования.
Потом пишу в edit1.text, edit2.text новые данные и потом эти значения присваем 2 строчке.
Я знаю как это сделать, но может есть проще способ для редактирования?

Последний раз редактировалось Neroaz; 12.04.2010 в 01:35.
Neroaz вне форума Ответить с цитированием
Старый 12.04.2010, 09:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
FileSize(F)=5
Это не показатель строк а показатель символов.
Как типизирован файл?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.04.2010, 11:23   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Stilet
Цитата:
FileSize(F)=5
Это не показатель строк а показатель символов.
Виталий, если файл реально типизированный, то FileSize(F) вернёт именно количество компонент, из которых состоит данный файл. Т.о., если, как я предполагаю, файл объявлен: var f : file Of MyRecord;
то Filesize(f) даст именно количество записей в файле.

Neroaz, нет, я проще способа не вижу... позиционируетесь на нужную запись, читаете эту запись.
Заносите в поля редактирования, после нажания кнопочки "Сохранить" - из полей редактирования - в поля записи, спозиционироваться и записать компоненту в файл..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2010, 11:47   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Serge_Bliznykov
Та я не против, но понятие "строка" вообще-то относится к текстовым файлам. Автору бы указать тип файла не мешало. А в типизированном файле есть "Записи", но не факт что именно в виде строк.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.04.2010, 15:20   #5
Neroaz
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 36
По умолчанию

Цитата:
var f : file Of MyRecord
В точку. Файл состоит в виде записей.
Как я выясняю количество строк в файле? с помощью
FileSize(F)-1 в Showmessage.
Neroaz вне форума Ответить с цитированием
Старый 12.04.2010, 15:33   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что ты понимаешь под словом "строка"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.04.2010, 16:01   #7
Neroaz
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 36
По умолчанию

строка - набор симболов
в данном случае: список записек. У меня так:
1 строка:
ie.surname:='Иванов'
ie.name:='Иван'
ie.adress:='Московская'
ie.phone:='123456677'
Neroaz вне форума Ответить с цитированием
Старый 12.04.2010, 17:07   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
FileSize(F)-1
а вот минус один в данном случае не нужно делать!

p.s. - так всё? разобрались? проблем нет? всё работает?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2010, 17:07   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мда...
Непонятно.
Ты как файл то описал?
В принципе для перемещения по записям существует функция seek. Вот опишешь файл
file of rec
где
rec=record
Surname,Name:string[255]
end;

Тогда и получишь записи. НО НЕ СТРОКИ!

В этом случае соответственно seek(файл,4) должен стать на четвертую запись.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.04.2010, 20:06   #10
Neroaz
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 36
По умолчанию

Stilet
Цитата:
В этом случае соответственно seek(файл,4) должен стать на четвертую запись.
А это не анологичный способ который предложил Serge_Bliznykov:
Цитата:
Neroaz, нет, я проще способа не вижу... позиционируетесь на нужную запись, читаете эту запись.
Заносите в поля редактирования, после нажания кнопочки "Сохранить" - из полей редактирования - в поля записи, спозиционироваться и записать компоненту в файл..
Вопрос был другой: можно ли редактирование сделать проще, чем тот, который описал в первом своем посте?

Последний раз редактировалось Neroaz; 12.04.2010 в 20:08.
Neroaz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка записей в типизированном файле Faina Помощь студентам 2 26.03.2010 17:28
Сортировка записей в тип. файле sixxn Помощь студентам 7 10.05.2009 17:24
Сортировка записей в файле. Turbo Pascal. Dexterello Помощь студентам 1 28.02.2009 18:14
Редактирование записей, отобранных через SQL Detka Помощь студентам 28 08.02.2009 01:56
Типизированные файлы.Создание, удаление, редактирование, сортировка записей типизированного файла.Паскаль Студент Шиза Помощь студентам 6 08.12.2007 13:41