|
|
|
Вопрос по произвольному доступу к двоичному файлу.
|
|||
|---|---|---|---|
|
#18+
Ребят подскажите. Вопрос по чистому С#. Подскажите как прочитать из файла конкретный промежуток, ну т.е., как указать с какого по какой байты нужно прочитать. Просто вся запарка в том, что файл может быть больше 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; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 20:18:31 |
|
||
|
Вопрос по произвольному доступу к двоичному файлу.
|
|||
|---|---|---|---|
|
#18+
On Tue, 20 Nov 2007 20:18:31 +0300, bigbanka <nospam@sql.ru> wrote: > Вопрос по чистому С#. Причем тут шарп? Голый си, даже не плюсплюс. > Подскажите как прочитать из файла Напрямую обращаться к системе (а не к runtime библиотеке). Если под винду -- CreateFile, SetFilePointerEx и все в этом духе. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 21:46:20 |
|
||
|
Вопрос по произвольному доступу к двоичному файлу.
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 21:53:00 |
|
||
|
Вопрос по произвольному доступу к двоичному файлу.
|
|||
|---|---|---|---|
|
#18+
_fseeki64 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 21:53:33 |
|
||
|
Вопрос по произвольному доступу к двоичному файлу.
|
|||
|---|---|---|---|
|
#18+
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, пример исользования можно привести? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 22:59:35 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2027777]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
199ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 492ms |

| 0 / 0 |
