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

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

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

> Типизированный файл с прямым доступом, как организовать прямой доступ в типизированном файле
xproo100x
сообщение 7.06.2010 18:44
Сообщение #1





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

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


Ребята, очень нужна помощь, искал на сайте не нашёл, киньте ссылку если тема уже была создана ранее или помогите тут!
Суть такова...существует файл(типизированный) в определённом куске программы его нужно вывести на экран, точнее одну запись, вопрос - как организовать прямой доступ к этому файлу?
заранее благодарен!

Сообщение отредактировано: xproo100x - 7.06.2010 18:53
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 7.06.2010 19:02
Сообщение #2


Гость






Цитата
вопрос - как организовать прямой доступ к этому файлу?
Ответ: Открыть файл Reset-ом и переместиться к нужной компоненте через Seek. Ключевые слова у тебя уже есть, теперь можно идти в поиск, уж о чем-о чем, а о файлах тем было немерено. Ищи и пробуй. Что не получится - спрашивай...
 К началу страницы 
+ Ответить 
xproo100x
сообщение 7.06.2010 19:20
Сообщение #3





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

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


Цитата(volvo @ 7.06.2010 20:02) *

Ответ: Открыть файл Reset-ом и переместиться к нужной компоненте через Seek.


то что seek это понятно...откуда мне узнать на какой из компанет нужная информация находится?
в общих чертах:
выводится на экран информация о магазинах, а фамилия директора берётся из справочного файла(типизированный файл с прямым доступом)
в эту процедуру поиска фамиилии забирается код магазина и вот по этому коду нужно найти фамилию.

Или мне нужно создать цикл где seek(...,i) и он рано или поздно придёт на нужное...так?

Добавлено через 13 мин.
Function FindFIO(a:integer):string;
var x: ...;(тот же тип что и file)
begin
reset(file)
read(file,x)
for i:=0 to filesize(file) do
begin
seek(file,i);
if x.kod=a then FindFIO:=x.fio {kod - код магазина, fio ФИО директора}
end;
end;


так чтоли?



М
Тэги!!
Lapp

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 8.06.2010 0:15
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(xproo100x @ 7.06.2010 20:20) *
то что seek это понятно...откуда мне узнать на какой из компанет нужная информация находится?
Искусство подменять первоначальный вопрос совсем другим.. norespect.gif На твой вопрос тебе был дан точный и исчерпывающий ответ.

Цитата(xproo100x @ 7.06.2010 20:20) *
так чтоли?
А где у тебя чтение? Оператор seek ничего не читает, он только позиционирут указатель на запись с данным номером. И, как уже сказал Client, если поиск идет подряд, то незачем использовать seek.

function FindFIO(code: integer): string;
var
x: tx;
f: file of tx;
begin
FindFIO:='';
Assign(f,'db.dat');
Reset(f);
while not EoF do begin
Read(f,x);
with x do if kod=code then begin
FindFIO:=FIO;
break
end
end;
Close(f)
end;


Если бы твой файл был упорядочен по кодам, то можно было бы применить дихотомию. Вот тогда seek бы сыграл.

P.S.
И не надо использовать зарезервированные слова (file) для названия переменных..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



- Текстовая версия 18.07.2025 17:51
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"