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

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

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

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





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

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


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

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


Профи
****

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

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


ну раз надо найти, то придется по очереди перебирать, пока не найдешь. Лучше просто read, без seek
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Цитата(Client @ 7.06.2010 23:12) *

ну раз надо найти, то придется по очереди перебирать, пока не найдешь. Лучше просто read, без seek


просто перебирать это последовательный!а мне нужен прямой...как то через seek...

Добавлено через 8 мин.
Цитата(Lapp @ 8.06.2010 1:15) *


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

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


1.Сортировка есть в отдельной процедуре вот код...проблема в том как потом в функции это всё дело находить через seek, очень прошу помочь!


{$R-}
procedure sort;
type
list=array[1..1] of tplus;
MyList=^list;
var i,j,n: integer;
buf: tplus;
fplus: file of tplus;
mas: MyList;
ind: boolean;
begin
assign(fplus,'DOP.DAT');
reset(fplus);
n:=filesize(fplus);
getmem(mas,(n+1)*sizeof(TPlus));
i:=1;
while not eof(fplus) do
begin
read(fplus,mas^[i]);
inc(i);
end;
repeat
ind:=true;
for i:=1 to n-1 do
if mas^[i].kod>mas^[i+1].kod then
begin
buf:=mas^[i];
mas^[i]:=mas^[i+1];
mas^[i+1]:=buf;
ind:=false;
end;
until ind;
close(fplus);
rewrite(fplus);
for i:=1 to n do begin write(fplus,mas^[i]);

end;
close(fplus);
reset(fplus);
freemem(mas,(n+1)*sizeof(TPlus));
end;
{$R+}




2.Учёл, больше не буду

Сообщение отредактировано: xproo100x -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


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

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

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


Цитата(xproo100x @ 8.06.2010 13:11) *
просто перебирать это последовательный!а мне нужен прямой...как то через seek...
А, так вот, в чем дело.. )) Ты запутался в терминологии..

Есть такие два понятия: "файл прямого доступа" и "файл последовательного доступа".
Типизированный файл относится к первому типу. Файл типа Text, например - ко второму.
А дальше - хоть как их используй, свой тип они не поменяют..
Если ты перебираешь, например, элементы массива подряд (тоже ищешь нужный) - что, он у тебя теперь "массив последовательного доступа"? smile.gif

seek нужно применять там, где нужно. Что, файл прямого доступа теперь уже нельзя подряд читать? smile.gif))) Или для чтения следующей записи нужно обязательно использовать seek????

Короче, наведи порядок с терминами в своей голове сначала.

и еще, что ты хотел сказать этим:
Цитата
1.Сортировка есть в отдельной процедуре вот код...
Меня не интересует, в какой она процедуре и какой там код. Меня вообще не интересует, был ли файл отсортирован, или, может, создан уже в таком порядке. Меня интересует только результат: расположены ли его записи в порядке возрастания (убывания) поля Код. Все. Если ты говоришь "да" - я (или кто-то еще тут) тебе показываю, как использовать seek для быстрого поиска.

Давай, разбирайся


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

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


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

 





- Текстовая версия 29.04.2024 19:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name