powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по произвольному доступу к двоичному файлу.
6 сообщений из 6, страница 1 из 1
Вопрос по произвольному доступу к двоичному файлу.
    #34953456
bigbanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят подскажите. Вопрос по чистому С#. Подскажите как прочитать из файла конкретный промежуток, ну т.е., как указать с какого по какой байты нужно прочитать. Просто вся запарка в том, что файл может быть больше 2Гб, следовательно функцию fseek нельзя иполбзовать, т.к. она работает в файлах до этих 2Гб))). Говорят, что можно использовать fgetpos() fsetpos(), но как их применить к конкретному примеру до меня не доходит((. Подскажите, сроки горят.
Собственно вот исходник проги к которой нужно применить эти функции, а может и не эти ;):
#include <stdio.h>
#include <stdlib.h>

int main()
{
int razmer, i, j, k, z, u, g, y, t, e;
FILE *myFile;
//fpos_t filepos;
printf("Vvedite razmer fajla v bajtakh:\n");
t=0;
scanf("%d", &razmer);
if ((razmer%4)!=0) {
y=razmer/4;
razmer=(y+1)*4;
}
j=razmer/4;
if ((myFile=fopen("blin.dat", "wb")) == NULL) {
printf("not be open\n");
}
else {
for ( i=1; i<=j; i++ ) {
k=rand()%300;
fwrite(&k, sizeof(int),1, myFile);
t=t+1;
if (t>=(j/100)) {
printf(".");
t=0;
}
}
fclose (myFile);
}



printf(" \n");
printf("Dlja raspechatki chisel nazhmite 1\n");
scanf("%d", &g);
if (g=1){
if((myFile=fopen("blin.dat", "rb")) == NULL) {
printf("not be open\n");
}
else {
for ( i=1; i<=j; i++) {
fread(&z, sizeof(int),1, myFile);
printf("%d ", z);
}
fclose (myFile);
}
}

scanf("%d", &u);
return 0;
}
...
Рейтинг: 0 / 0
Вопрос по произвольному доступу к двоичному файлу.
    #34953543
Leshij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On Tue, 20 Nov 2007 20:18:31 +0300, bigbanka <nospam@sql.ru>; wrote:

> Вопрос по чистому С#.
Причем тут шарп? Голый си, даже не плюсплюс.

> Подскажите как прочитать из файла
Напрямую обращаться к системе (а не к runtime библиотеке).
Если под винду -- CreateFile, SetFilePointerEx и все в этом духе.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вопрос по произвольному доступу к двоичному файлу.
    #34953549
Leshij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On Tue, 20 Nov 2007 20:18:31 +0300, bigbanka <nospam@sql.ru>; wrote:

> Просто вся запарка в том, что файл может быть больше 2Гб

> fwrite(&k, sizeof(int),1, myFile);

На таких файлах будет очень медленно читать/писать по 4 байта.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вопрос по произвольному доступу к двоичному файлу.
    #34953550
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fseeki64
...
Рейтинг: 0 / 0
Вопрос по произвольному доступу к двоичному файлу.
    #34953605
bigbanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leshij
On Tue, 20 Nov 2007 20:18:31 +0300, bigbanka <nospam@sql.ru>; wrote:
Если под винду -- CreateFile, SetFilePointerEx и все в этом духе.
Posted via ActualForum NNTP Server 1.4
Где почитать про CreateFile, SetFilePointerEx, пример исользования можно привести?
...
Рейтинг: 0 / 0
Вопрос по произвольному доступу к двоичному файлу.
    #34953619
Декоратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSDN. Знаешь такое волшебное слово ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по произвольному доступу к двоичному файлу.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]