首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c 操作文件的代码,看了让人晕头转向!解决思路

2012-04-11 
c 操作文件的代码,看了让人晕头转向!在此,小弟向各位高手达人请教以下用C语言写的操作文件的伪代码是什么

c 操作文件的代码,看了让人晕头转向!
在此,小弟向各位高手达人请教以下用C语言写的操作文件的伪代码是什么意思,流程,恳请达人帮忙修改修改,能够达到原来他的用途及其作用!!在线等。。。
代码如下:
#include "stdafx.h"
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <io.h>
#include <iostream>
#include <WinDef.h>
#include <SYS\STAT.H>
typedef __int64 _DWORD;
char *file_ptr;
#pragma warning (disable:4305)
#pragma warning (disable:4309)
signed int __cdecl DOParseTwoCols(const char *s2, const char *a2)
{
FILE *fp; // 打开文件指针
signed int lenBuff; // 字符串长度
char signChar; // 每个字符
char *c_Point; // 字符指针
signed int Jud_Condition; // 判断条件
char temp; // 存放字符串的临时变量
int n; // 比较传入字符串长度与固定的字符串指针s2的大小
char *c_Point2; // 字符指针2
char signChar2; // 第二次入栈的每个字符指针
char *c_Point3; // 字符指针3
signed int i; // 变量
char v13; // 
FILE *stream; // 文件流指针
char Data[513]; // 存放字符串的数组
char v17[16]; // 
char s1[28]; // 

fp = (FILE *)fopen(file_ptr, "r"); // 打开文件,以只读方式打开,将文件指针指向文件头
stream = fp;
lenBuff = 2304; //赋初值给字符串长度
if ( fp )
{
if ( !fgets(Data, 512, fp) || !Data[0] || Data[0] == 10 ) //fgets,从流中读一行字符或指定字符。
{
goto Loop;
}
lenBuff = 0;
while ( TRUE )
{
signChar = Data[lenBuff];
if ( signChar != 32 )
{
if ( signChar != 9 )
break;
}
lenBuff++;
}
c_Point = &Data[lenBuff];

Jud_Condition = 0;
while ( TRUE )
{
temp = *(&signChar);
if ( temp == 32 )
break;
if ( temp == 9 )
break;
if ( temp == 10 )
break;
++signChar;
if ( !temp )
break;
if ( Jud_Condition > 14 )
break;
s1[Jud_Condition++] = temp;
++lenBuff;
}

if ( !Jud_Condition || (Data[Jud_Condition] = 0, n = strcmp(Data, s2), c_Point2 = &Data[lenBuff], n) )
{
goto Loop;
}
while ( TRUE )
{
signChar2 = *c_Point2++;
if ( signChar2 != 32 )
{
if ( signChar2 != 9 )
break;
}
++lenBuff;
}
c_Point3 = &Data[lenBuff];
for ( i = 0; ; ++i )
{
v13 = *c_Point3;
if ( *c_Point3 == 32 )
break;
if ( v13 == 9 )
break;
if ( v13 == 10 )
break;
++c_Point3;
if ( !v13 )
break;
if ( i > 14 )
break;
v17[i] = v13;
}
if ( !i || (v17[i] = 0, lenBuff = 0, strcmp(v17, a2)) )
{
Loop:
lenBuff = 14336;
}
fclose(stream);
}
return lenBuff;
}

signed int __cdecl DOCheckSum(char *a1, int a2, int a3, int a4)
{
int v4; // 
int v5; // 
signed int v6; // 
int v7; // 
__int32 v8; // 
int v9; // 
int v10; // 
int v11; //
size_t v12; // 
size_t v13; // 
int fd; // 
struct stat *v16; // 
int v17; // 
__int64 nbytes; // 
int buf; // 

v4 = *(_DWORD *)a2;
v5 =TRUE; //获取文件信息
v6 = 9984;
if ( !v5 )
{
v7 = v17 & 0xF000;
if ( v7 == 24576 )
{
*(_DWORD *)a4 = 0;
*(_DWORD *)a2 = 117;
*(_DWORD *)a3 = 2552;
return 0;
}
if ( v7 == 8192 )
{
*(_DWORD *)a4 = 0;
*(_DWORD *)a2 = 130;
*(_DWORD *)a3 = 1814;
return 0;
}
if ( v7 == 4096 )
{
*(_DWORD *)a4 = 0;
*(_DWORD *)a2 = 51;
*(_DWORD *)a3 = 1824;
return 0;
}
if ( !nbytes )
{
v8 = 0;
v9 = 2767;
LABEL_28:
*(_DWORD *)a4 = nbytes;
*(_DWORD *)a2 = v8;
*(_DWORD *)a3 = v9;
return 0;


}
if ( v4 >= 0 )
v8 = v4 - nbytes;
else
v8 = rand() % (signed int)nbytes;
v6 = 12800;
if ( v8 >= 0 )
{
v9 = v8;
if ( v7 == 40960 )
goto LABEL_28;
fd = (int)fopen(a1, "r");
v6 = 2304;
if ( fd != NULL )
{
if ( v8 + 4 > (signed int)nbytes )
{
if ( v8 <= 3 )
{
v8 = 0;
if ( (signed int)nbytes > 3 )
v8 = nbytes - 4;
}
else
{
v8 -= 4;
}
}
v10 = fseek((FILE *)fd, 0L, SEEK_END);
if ( v11 != -1 || v10 != -1 )
{
buf = 0;
v12 = 4;
if ( (signed int)nbytes < 4 )
v12 = nbytes;
v13 = _read(fd, &buf, v12);
fclose((FILE *)fd);
v6 = 2560;
if ( v13 == v12 )
{
v9 = BYTE(buf) + BYTE(buf) + (unsigned __int8)buf + BYTE(buf);
goto LABEL_28;
}
}
else
{
fclose((FILE *)fd);
v6 = 9728;
}
}
}
}
return v6;
}



[解决办法]
太长了,哥看得和你一样晕头转向。帮你顶下。
[解决办法]
单步调试和设断点调试是程序员必须掌握的技能之一。

[解决办法]
看到了goto,头晕了

热点排行