164 lines
6.8 KiB
Plaintext
164 lines
6.8 KiB
Plaintext
|
|
#if 0
|
|
BOOL UUEncode::encode(const String &srcPathFileName,const String &dstPathFileName)
|
|
{
|
|
int ch(0);
|
|
char readBuff[45];
|
|
int readCount;
|
|
int byteCount;
|
|
char *ptrBuff;
|
|
String outLine;
|
|
BYTE chByte;
|
|
|
|
if(srcPathFileName.isNull()||dstPathFileName.isNull())return FALSE;
|
|
FileHandle readFile(srcPathFileName,FileHandle::Read,FileHandle::ShareRead);
|
|
if(!readFile.isOkay())return FALSE;
|
|
FileHandle writeFile(dstPathFileName,FileHandle::Write,FileHandle::ShareRead,FileHandle::Overwrite);
|
|
if(!writeFile.isOkay())return FALSE;
|
|
FileMap readMap(readFile);
|
|
PureViewOfFile readView(readMap);
|
|
::sprintf(outLine,"begin %d %s",644,srcPathFileName);
|
|
writeFile.writeLine(outLine);
|
|
while(readCount=readView.read(readBuff,45))
|
|
{
|
|
ch=chEncode(readCount);
|
|
chByte=ch;
|
|
writeFile.write(chByte);
|
|
for(ptrBuff=readBuff,byteCount=readCount;byteCount>0;byteCount-=3,ptrBuff+=3)
|
|
{
|
|
ch=*ptrBuff>>2;
|
|
ch=chEncode(ch);
|
|
chByte=ch;
|
|
writeFile.write(chByte);
|
|
ch=(*ptrBuff<<4)&0x30|(ptrBuff[1]>>4)&0x0F;
|
|
ch=chEncode(ch);
|
|
chByte=ch;
|
|
writeFile.write(chByte);
|
|
ch=(ptrBuff[1]<<2)&0x3C|(ptrBuff[2]>>6)&0x03;
|
|
ch=chEncode(ch);
|
|
chByte=ch;
|
|
writeFile.write(chByte);
|
|
ch=ptrBuff[2]&0x3F;
|
|
ch=chEncode(ch);
|
|
chByte=ch;
|
|
writeFile.write(chByte);
|
|
}
|
|
writeFile.write((BYTE)'\n');
|
|
if(readCount!=45)break;
|
|
}
|
|
ch=('\0'?('\0'&0x3F)+' ':'`');
|
|
writeFile.write((BYTE)ch);
|
|
writeFile.write((BYTE)'\n');
|
|
::sprintf(outLine,"end");
|
|
writeFile.writeLine(outLine);
|
|
return TRUE;
|
|
}
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
FILE_SHARE_READ equ 00000001h
|
|
FILE_SHARE_WRITE equ 00000002h
|
|
FILE_SHARE_DELETE equ 00000004h
|
|
FILE_ATTRIBUTE_READONLY equ 00000001h
|
|
FILE_ATTRIBUTE_HIDDEN equ 00000002h
|
|
FILE_ATTRIBUTE_SYSTEM equ 00000004h
|
|
FILE_ATTRIBUTE_DIRECTORY equ 00000010h
|
|
FILE_ATTRIBUTE_ARCHIVE equ 00000020h
|
|
FILE_ATTRIBUTE_NORMAL equ 00000080h
|
|
FILE_ATTRIBUTE_TEMPORARY equ 00000100h
|
|
FILE_ATTRIBUTE_COMPRESSED equ 00000800h
|
|
FILE_ATTRIBUTE_OFFLINE equ 00001000h
|
|
CREATE_NEW equ 00000001h
|
|
CREATE_ALWAYS equ 00000002h
|
|
OPEN_EXISTING equ 00000003h
|
|
OPEN_ALWAYS equ 00000004h
|
|
TRUNCATE_EXISTING equ 00000005h
|
|
DELETE equ 00010000h
|
|
READ_CONTROL equ 00020000h
|
|
WRITE_DAC equ 00040000h
|
|
WRITE_OWNER equ 00080000h
|
|
SYNCHRONIZE equ 00100000h
|
|
STANDARD_RIGHTS_REQUIRED equ 000F0000h
|
|
STANDARD_RIGHTS_READ equ READ_CONTROL
|
|
STANDARD_RIGHTS_WRITE equ READ_CONTROL
|
|
STANDARD_RIGHTS_EXECUTE equ READ_CONTROL
|
|
STANDARD_RIGHTS_ALL equ 001F0000h
|
|
SPECIFIC_RIGHTS_ALL equ 0000FFFFh
|
|
FILE_READ_DATA equ 0001h
|
|
FILE_LIST_DIRECTORY equ 0001h
|
|
FILE_WRITE_DATA equ 0002h
|
|
FILE_ADD_FILE equ 0002h
|
|
FILE_APPEND_DATA equ 0004h
|
|
FILE_ADD_SUBDIRECTORY equ 0004h
|
|
FILE_CREATE_PIPE_INSTANCE equ 0004h
|
|
FILE_READ_EA equ 0008h
|
|
FILE_WRITE_EA equ 0010h
|
|
FILE_EXECUTE equ 0020h
|
|
FILE_TRAVERSE equ 0020h
|
|
FILE_DELETE_CHILD equ 0040h
|
|
FILE_READ_ATTRIBUTES equ 0080h
|
|
FILE_WRITE_ATTRIBUTES equ 0100h
|
|
FILE_ALL_ACCESS equ STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or 1FFh
|
|
FILE_GENERIC_READ equ STANDARD_RIGHTS_READ or FILE_READ_DATA or FILE_READ_ATTRIBUTES or FILE_READ_EA or SYNCHRONIZE
|
|
FILE_GENERIC_WRITE equ STANDARD_RIGHTS_WRITE or FILE_WRITE_DATA or FILE_WRITE_ATTRIBUTES or FILE_WRITE_EA or FILE_APPEND_DATA or SYNCHRONIZE
|
|
FILE_GENERIC_EXECUTE equ STANDARD_RIGHTS_EXECUTE or FILE_READ_ATTRIBUTES or FILE_EXECUTE or SYNCHRONIZE
|
|
GENERIC_READ equ 80000000h
|
|
GENERIC_WRITE equ 40000000h
|
|
GENERIC_EXECUTE equ 20000000h
|
|
GENERIC_ALL equ 10000000h
|
|
#endif
|
|
|
|
FileReadData=0x0001,FileListDirectory=0x0001,FileWriteData=0x0002,
|
|
FileAddFile=0x0002,FileAppendData=0x0004,FileAddSubDir=0x0004,
|
|
FileCreatePipeInstance=0x0004,FileReadEA=0x0008,FileWriteEA=0x0010,
|
|
FileExecute=0x0020,FileTraverse=0x0020,FileDeleteChild=0x0040,
|
|
FileReadAttributes=0x0080,FileWriteAttributes=0x0100,
|
|
FileAllAccess=StandardRightsRequired|Synchronize|0x1FF,
|
|
FileGenericRead=StandardRightsRead|FileReadData|FileReadAttributes|FileReadEA|Synchronize,
|
|
|
|
enum Rights{ReadControl=0x00020000,WriteDAC=0x00040000,WriteOwner=0x00080000,Synchronize=0x00100000};
|
|
enum Standard{StandardRightsRequired=0x000F0000,StandardRightsRead=ReadControl,
|
|
StandardRightsWrite=ReadControl,StandardRightsExecute=ReadControl,
|
|
StandardRightsAll=0x001F0000,SpecificRightsAll=0x0000FFFF};
|
|
;FWRITE MACRO sFileInfo,ptrByte
|
|
; LOCAL @@FWRITEsimpleWrite,@@FWRITEuseBuffer
|
|
; cmp sFileInfo.FileInfo@@mBufferIndex,MaxLength ; compare buffer index to MaxLength
|
|
; jl @@FWRITEsimpleWrite ; if it's less then insert char into buffer
|
|
; WRITEFILE sFileInfo.FileInfo@@mhFileHandle,sFileInfo.FileInfo@@mszBuffer,MaxLength ; other wise
|
|
; mov sFileInfo.FileInfo@@mBufferIndex,0000h ; set buffer index to zero
|
|
; mov eax,offset sFileInfo.FileInfo@@mszBuffer ; move address of buffer to eax
|
|
; mov sFileInfo.FileInfo@@mlpBufferPointer,eax ; move address of buffer to lpBufferPointer
|
|
;@@FWRITEsimpleWrite: ; simple write sync address
|
|
; cmp sFileInfo.FileInfo@@mlpBufferPointer,0000h ; is buffer pointer null?
|
|
; jne @@FWRITEuseBuffer ; if not then just use it
|
|
; mov eax,offset sFileInfo.FileInfo@@mszBuffer ; move address of buffer to eax
|
|
; mov sFileInfo.FileInfo@@mlpBufferPointer,eax ; move address of buffer to lpBufferPointer
|
|
;@@FWRITEuseBuffer: ; use buffer sync address
|
|
; mov cl,byte ptr[ptrByte] ; move byte to write to cl
|
|
; mov eax,sFileInfo.FileInfo@@mlpBufferPointer ; move address of buffer to eax
|
|
; mov byte ptr[eax],cl ; move byte into buffer
|
|
; inc sFileInfo.FileInfo@@mlpBufferPointer ; increment buffer pointer
|
|
; inc sFileInfo.FileInfo@@mBufferIndex ; increment buffer index
|
|
; mov eax,01h ; set return code
|
|
;ENDM
|
|
|
|
|
|
|
|
// char strLine[128];
|
|
// while(openFile.readLine((BYTE*)strLine));
|
|
// openFile.writeFile((BYTE*)"I wonder what line this is?\n");
|
|
// openFile.flushFile();
|
|
//#if 0
|
|
// byteCount=0;
|
|
// DWORD elapsedTime(::GetTickCount());
|
|
// while(openFile.readFile(&ptrByte))++byteCount;
|
|
// elapsedTime=::GetTickCount()-elapsedTime;
|
|
// elapsedTime/=1000L;
|
|
// ::sprintf(strMessage,"%ld bytes read int %ld seconds\n",byteCount,elapsedTime);
|
|
// ::MessageBox(::GetFocus(),strMessage,(LPSTR)"FileIO",MB_OK);
|
|
//#endif
|
|
// openFile.closeFile();
|