Форум: Форум C++Разное
Новые темы: 00
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Текстовые файлы в С++
 
 автор: Князев   (29.04.2009 в 17:00)   письмо автору
 
 

Можно ли в текстовом файле считывать данные с заданной позиции

  Ответить  
 
 автор: GeorgeIV   (30.04.2009 в 10:22)   письмо автору
 
   для: Князев   (29.04.2009 в 17:00)
 

Moves the file pointer to a specified location.

 
int fseek
   FILE *stream,
   long offset,
   int origin 
);
int _fseeki64
   FILE *stream,
   __int64 offset,
   int origin 
);
 


Parameters
stream
Pointer to FILE structure.

offset
Number of bytes from origin.

origin
Initial position.

Return Value
If successful, fseek and _fseeki64 returns 0. Otherwise, it returns a nonzero value. On devices 
incapable of seeking, the return value is undefined. If stream is a null pointer, or if origin is not one
 of allowed values described below, fseek and _fseeki64 invoke the invalid parameter handler, as 
described in Parameter Validation. If execution is allowed to continue, these functions set errno to 
EINVAL and return -1.

Remarks
The fseek and _fseeki64 functions moves the file pointer (if any) associated with stream to a new 
location that is offset bytes from origin. The next operation on the stream takes place at the new 
location. On a stream open for update, the next operation can be either a read or a write. 
The argument origin must be one of the following constants, defined in STDIO.H: 

SEEK_CUR
Current position of file pointer.

SEEK_END
End of file.

SEEK_SET
Beginning of file.

You can use fseek and _fseeki64 to reposition the pointer anywhere in a file. 
The pointer can also be positioned beyond the end of the file. 
fseek and _fseeki64 clears the end-of-file indicator and 
negates the effect of any prior ungetc calls against stream.

When a file is opened for appending data, the current file position is determined by the last I/O
 operation, not by where the next write would occur. If no I/O operation has yet occurred on a file
 opened for appending, the file position is the start of the file. 

For streams opened in text mode, fseek and _fseeki64 have limited use, because carriage return
linefeed translations can cause fseek and _fseeki64 to produce unexpected results. The only 
fseek and _fseeki64 operations guaranteed to work on streams opened in text mode are: 

Seeking with an offset of 0 relative to any of the origin values.

Seeking from the beginning of the file with an offset value returned from a call to ftell when using 
fseek or _ftelli64 when using _fseeki64.

Also in text mode, CTRL+Z is interpreted as an end-of-file character on input. In files opened for
 reading/writing, fopen and all related routines check for a CTRL+Z at the end of the file and remove
 it if possible. This is done because using the combination of fseek and ftell or _fseeki64 and 
_ftelli64, to move within a file that ends with a CTRL+Z may cause fseek or _fseeki64 to behave improperly near the end of the file. 

This function locks out other threads during execution and is therefore thread-safe. For a non-
locking version, see _fseek_nolock, _fseeki64_nolock.


Т.е. указываешь смещение и откуда его считать.

  Ответить  
 
 автор: Князев   (30.04.2009 в 20:58)   письмо автору
 
   для: GeorgeIV   (30.04.2009 в 10:22)
 

Ничего не понял!!! Можно поподробней и на русском языке?

  Ответить  
 
 автор: FireTiger   (02.05.2009 в 11:26)   письмо автору
 
   для: Князев   (30.04.2009 в 20:58)
 

Вы наверняка изучаете язык по какой-либо книге. Найдите там тему "Файлы и потоки". Функция fseek() там точно описана. Именно она Вам и нужна =)

Пример:

fseek(stream, 0, SEEK_SET); // устанавливает указатель на начало файла

  Ответить  
 
 автор: GeorgeIV   (04.05.2009 в 10:33)   письмо автору
 
   для: Князев   (30.04.2009 в 20:58)
 

MSDN - это библия программиста на Си и ее нужно понимать в оригинале, даже не зная языка.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования