QFile file(fileName); file.open(QFile::ReadOnly); QDataStream in(&file); .... qint64 oldPos = (in.device())->pos(); qint32 nSkipLen = 30; in.skipRawData(nSkipLen); //data를 skip하고 다시 이전 position으로 이동 (in.device())->seek(oldPos); //SetFilePointer()함수의 역활 ....
위와 같이 QDataStream 은 I/O device를 return하는 함수가 있다.
QIODevice Class에는 Pos()와 Seek() 함수가 존재하는데 이 함수들을 이용하면 SetFilePointer()와 같은 방식을 구현할 수 있다.
qint64 QIODevice::pos() const [virtual] For random-access devices, this function returns the position that data is written to or read from. For sequential devices or closed devices, where there is no concept of a "current position", 0 is returned. The current read/write position of the device is maintained internally by QIODevice, so reimplementing this function is not necessary. When subclassing QIODevice, use QIODevice::seek() to notify QIODevice about changes in the device position. |
bool QIODevice::seek(qint64 pos) [virtual] For random-access devices, this function sets the current position to pos, returning true on success, or false if an error occurred. For sequential devices, the default behavior is to produce a warning and return false. When subclassing QIODevice, you must call QIODevice::seek() at the start of your function to ensure integrity with QIODevice's built-in buffer. |
'QT and Symbian' 카테고리의 다른 글
SLOT에서 SIGNAL Widget 확인하는 방법 (0) | 2015.05.28 |
---|---|
QImage Format 중 QImage::Format_Mono 처리 방식 (0) | 2015.01.30 |
QT 자료 검색중 찾은 블로그 (0) | 2014.11.11 |
QT 파일 읽고 쓰기 (0) | 2014.09.24 |
QT 참고 도서 및 SDK 설치 파일 (0) | 2014.09.24 |