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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2007, 19:03   #1
malevich
Пользователь
 
Аватар для malevich
 
Регистрация: 01.11.2006
Сообщений: 63
По умолчанию Lseek

какую библиотеку использует процедура Lseek???
lseek(mod_dev,12,1);
mod_dev - идентификатор файла
12 - на сколько позиций сдвинуть влево
1 - сдвинуть относительно текущей позиции

Весь инет перерыл, так и не нашел.....

И еще : если Lseek сдвигает влево, есть ли Rseek которая сдвигает вправо?
malevich вне форума Ответить с цитированием
Старый 17.02.2007, 00:28   #2
Lynx
Пользователь
 
Аватар для Lynx
 
Регистрация: 09.02.2007
Сообщений: 49
По умолчанию

Просто seek(mov_dev,<на сколько сдвинуть>)
Свой среди чужих
Чужой среди своих
Lynx вне форума Ответить с цитированием
Старый 17.02.2007, 00:51   #3
malevich
Пользователь
 
Аватар для malevich
 
Регистрация: 01.11.2006
Сообщений: 63
По умолчанию

seek(mod_dev,12);
Ошибка: Incompatible types
Скорее всего потому-что mod_dev : textfile;
malevich вне форума Ответить с цитированием
Старый 17.02.2007, 00:53   #4
malevich
Пользователь
 
Аватар для malevich
 
Регистрация: 01.11.2006
Сообщений: 63
По умолчанию

ПРОШУ ПОМОШИ
*********************************** **********
Есть текстовый файл такой структуры:
2.0000E-03 -2.4032E-04 -9.3987E+01 6.5985E+01 -4.4732E+05
5.0000E-03 -2.4032E-04 -9.3987E+01 6.5985E+01 -2.7272E+05
8.0000E-03 -2.4032E-04 -9.3987E+01 6.5985E+01 -1.9964E+05
1.1100E-02 -2.4032E-04 -9.3987E+01 6.5985E+01 -1.5526E+05
1.4100E-02 -2.4032E-04 -9.3987E+01 6.5985E+01 -1.2847E+05
1.7100E-02 -2.4032E-04 -9.3987E+01 6.5985E+01 -1.0956E+05
2.0100E-02 -2.4032E-04 -9.3987E+01 6.5985E+01 -9.5503E+04
2.3100E-02 -2.4032E-04 -9.3987E+01 6.5985E+01 -8.4639E+04
2.6100E-02 -2.4032E-04 -9.3987E+01 6.5985E+01 -7.5993E+04
2.9100E-02 -2.4032E-04 -9.3987E+01 6.5985E+01 -6.8947E+04
................................... ................................... ................................... ...
................................... ................................... ................................... ...
Хочу загнать его в массив!
сначала читаю первый столбец у[0,ii], потом помещаю ФУ в начало файла reset(mod_dev),
и даю смещение на 12 символов вправо TextSeek(mod_dev,12), чтобы перейти ко второму столбцу и т.д..
Но выходит так что он все время читает первый столбец! Почему?
Вроде в TextSeek все как надо........ быть может
for i:=0 to 3 do
begin
for ii:=0 to 1000 do
begin
readln(mod_dev,y[i,ii]);
end;
reset(mod_dev);
TextSeek(mod_dev,12);
end;

procedure TextSeek(var F: TextFile; Position: Integer);
var
Handle: Integer;
NewPosition: DWORD;
begin
Handle := PInteger(@F)^;
NewPosition := SetFilePointer(Handle, Position, nil, FILE_CURRENT);
end;
malevich вне форума Ответить с цитированием
Старый 17.02.2007, 01:06   #5
malevich
Пользователь
 
Аватар для malevich
 
Регистрация: 01.11.2006
Сообщений: 63
По умолчанию

Торможу. значит пора отдохнуть
NewPosition := SetFilePointer(Handle, Position, nil, FILE_BEGIN);
и

TextSeek(mod_dev,12*(i+1));

Теперь все в норме
malevich вне форума Ответить с цитированием
Ответ


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