|
|
|
| Можно ли в текстовом файле считывать данные с заданной позиции | |
|
|
|
|
|
|
|
для: Князев
(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. |
Т.е. указываешь смещение и откуда его считать. | |
|
|
|
|
|
|
|
для: GeorgeIV
(30.04.2009 в 10:22)
| | Ничего не понял!!! Можно поподробней и на русском языке? | |
|
|
|
|
|
|
|
для: Князев
(30.04.2009 в 20:58)
| | Вы наверняка изучаете язык по какой-либо книге. Найдите там тему "Файлы и потоки". Функция fseek() там точно описана. Именно она Вам и нужна =)
Пример:
fseek(stream, 0, SEEK_SET); // устанавливает указатель на начало файла
|
| |
|
|
|
|
|
|
|
для: Князев
(30.04.2009 в 20:58)
| | MSDN - это библия программиста на Си и ее нужно понимать в оригинале, даже не зная языка. | |
|
|
|