文件的逆序存储

原创 2007年09月22日 16:57:00
 

HTML Tags and JavaScript tutorial



文件的逆序存储





#include "stdio.h"
#include "io.h"
#include "fcntl.h "
void Flip()
{
 char Buffer[1024],Temp;
 int i;
 int  nReadLength,nRead;
 int nLoop,nArrLen;
 long nFileLength,SeekOffSet;
 int handle;
 FILE * SourceFile,*TargetFile;
 
 handle = open("00",O_RDONLY);
 nFileLength = filelength(handle);
 
 SourceFile = fopen("00","rb");
 TargetFile = fopen("11","wb");
 
 nReadLength = 1;
 SeekOffSet = nFileLength - 1024;
 nRead = 1024;
 nLoop = 512;
 nArrLen = 1023;
 while(nReadLength != 0)
 {
  fseek(SourceFile,SeekOffSet,SEEK_SET);
  nReadLength = fread(Buffer,sizeof(char),nRead,SourceFile);
  for(i=0;i<nLoop;i++)
  {
   Temp = Buffer[i];
   Buffer[i] = Buffer[nArrLen-i];
   Buffer[nArrLen-i] = Temp;
  }
  fwrite(Buffer,sizeof(char),nReadLength,TargetFile);
  if(SeekOffSet < 1024)
  {
   nRead = SeekOffSet;
   SeekOffSet = 0;
   nLoop = nRead/2;
   nArrLen = nRead -1;
  }
  else
   SeekOffSet -= 1024;
  if( nReadLength < 1024 )
   nReadLength = 0;
 }
 fclose(SourceFile);
 fclose(TargetFile);
}
main()
{
 Flip();

本程序在TC2.0下调试通过,源文件文件名是“00”,生成的文件名是“11”。


逆序存储文件(三)——文件内存映射

之前介绍的两种逆序存储文件的方法,由于性能问题,只适用于小文件的操作,如果源文件较大,几M,几百M,甚至几G,则需要使用文件内存映射的方式。我对内存映射的原理认识不深,也未做研究,我只知道,使用内存映...

[C++]练习使用链表逆序存储的两个数相加

#include "stdafx.h" #include #include using std::cout; using std::endl;typedef struct tagSNode { ...

不使用额外存储节点的情况下使单链表逆序问题(配图解)

如何在不使用额外存储节点的情况下使一个单链表的所有节点逆序?我们先用迭代循环的思想来分析这个问题,链表的初始状态如图(1)所示:  初始状态,prev是NULL,head指向当前的头节点A,...
  • x_jjt
  • x_jjt
  • 2016年02月24日 19:34
  • 272

单链表的逆序存储

单链表的逆序存储 在实际应用中,经常需要用到逆序存储。而当使用链表时,逆序存储的优势更加突出,在这里,我将实现单链表的逆序存储,并且还将实现顺序存储,用以比较。 代码部分://逆序存储 #inc...
  • hg_zhh
  • hg_zhh
  • 2016年09月25日 15:02
  • 368

用链表形式存储一个字符串,插入、删除某个字符,最后按正序、逆序两种方式输出字符串

[问题描述] 用链表形式存储一个字符串,插入、删除某个字符,最后按正序、逆序两种方式输出字符串。 [输入] 初始字符串,插入位置,插入字符,删除字符。 [输出] 已建立链表(字符串),插入...

实现一个函数翻转字符串(将一个字符串的内容,逆序存储)

实现一个函数翻转字符串(将一个字符串的内容,逆序存储)         这与实现模拟strcpy的过程有相似之处,模拟实现strcpy是将原字符串复制过来,而现在需要创建一个新的字符串空间,将原字符内...

【算法之链表(四)】在不使用额外节点存储空间的情况下,实现单链表逆序

下面来看一下很经典的“单链表逆序”问题。很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间,有的没有明确说明,但是如果面试者使用了额外的节点存储空间做中转,会得到一个比较低...

BitArray 内置是逆序存储, 因此要自行实现正序输出

using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S...
  • blacop
  • blacop
  • 2017年03月16日 17:35
  • 173
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件的逆序存储
举报原因:
原因补充:

(最多只允许输入30个字)