- 在线时间
- 0 小时
- 最后登录
- 2004-6-29
- 注册时间
- 2004-4-30
- 听众数
- 1
- 收听数
- 0
- 能力
- 0 分
- 体力
- 241 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 98
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 43
- 主题
- 10
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   97.89% 该用户从未签到
 |
新建一個專案,在窗口Form1上加兩個按鈕,一個OpenDialog1,一個SaveDialog1;
7 c& J) Q5 @2 g//---------------------------------------------------------------------------
5 L' @" ], T8 }) A" a
( q! ~7 u. F0 X$ S7 I, x# i: d) F#include <vcl.h>
+ C g+ b' C7 F3 v3 c#pragma hdrstop
9 I/ q% L H, Z: N7 N
( S; o) ~) a! n: V( ~5 h T0 C1 r; [' ]#include "Unit1.h"
' l+ v, u* w; I+ @) M#include <fstream.h>6 A& b2 {" } p" L" E
#include <dir.h>
; c* I% J! n1 Q4 h* J( O#include <sys\stat.h>8 p- Q' r" J# X, [
#include <malloc.h># R4 s0 y0 d& Q& p' p& w5 n
//---------------------------------------------------------------------------
) P' Q' ?2 \; @5 @( b( p# S. x#pragma package(smart_init)
6 D+ y/ O) S5 N% J `#pragma resource "*.dfm"
% l, s& f- W( J3 t0 w* p& L( xTForm1 *Form1;9 c/ c4 ^' F, L7 g, J
unsigned char *BIN_Byte;3 |, \, r* `, {$ C; M
long BIN_Byte_Len;8 M: }/ @, ]' M& f2 [# a
//---------------------------------------------------------------------------0 ]$ ^2 t4 U3 o9 q. X# w
__fastcall TForm1::TForm1(TComponent* Owner) N" |- p v& k, y2 O0 ^: v8 K
: TForm(Owner)
8 J( x% y* q! P0 X0 x# G- B{+ z5 t2 r/ `, P# d) z; v
} N' ?4 [) a @- i6 \1 X8 {$ }' u
//---------------------------------------------------------------------------8 \/ A1 X! S7 X" G# K$ q% p V( \
void __fastcall TForm1::Button1Click(TObject *Sender)
4 I a; J" W0 a/ F6 l{
( L) l; A& ]2 k9 y& C9 C" a char sPath[MAXPATH];
+ @6 s# Y" Q+ d struct stat statbuf;+ Z$ K7 l. W `1 n: i9 f3 T+ u
FILE *stream;' W! ~6 O# k% b' L4 |
& Q2 z% y* C6 F; k
getcwd(sPath,sizeof(sPath));: I4 s. Z0 P# [
OpenDialog1->InitialDir=sPath;
* Z" F# Q! E7 O. H0 M# l. o OpenDialog1->Filter = "BIN_File(*.BIN)|*.BIN|All_File(*.*)|*.*";
. d( _4 R6 u3 e2 X6 w OpenDialog1->FileName="fileFrom.BIN";0 k6 W9 |3 s# k, y, @' Z
if(OpenDialog1->Execute())
* e5 F8 i. G) a0 H {& F7 b+ I: P! n
strcpy(sPath,OpenDialog1->FileName.c_str());
% D3 L( j- ?6 x Q. q stream=fopen(sPath,"rb");
& @; j& R+ C4 Q# b$ Y% N8 U# N fstat(fileno(stream),&statbuf);
& b# @" j3 {/ L# s- O; Y BIN_Byte_Len=statbuf.st_size;
6 O: ^' \' j! I& b7 r9 Y$ [+ y* ? BIN_Byte=(unsigned char *)alloca(BIN_Byte_Len);
" T* C4 ^. K, _5 P- r for(int i=0;i<BIN_Byte_Len;i++)5 \, ~% \4 K% n* _, K3 b
fscanf(stream,"%c",&BIN_Byte); //read file% L& s3 X/ y: q# r
fclose(stream);6 |, t+ m4 ], d# J. q/ E# B
}4 \/ `) r6 x) r Y
free(sPath);. h x' K9 _3 Q! {$ u
free(stream);
* `/ T0 Z& W8 r! q}8 }* a6 ^) }, ?% j
//---------------------------------------------------------------------------
- ?: Z! M8 b+ v' V$ x7 U, nvoid __fastcall TForm1::Button2Click(TObject *Sender)
$ x- p! z0 `9 g( d{
9 U* M! h7 q! U' T char sPath[MAXPATH];( \7 s- d1 G5 n1 a; _2 z- ?* ~
FILE *stream;6 A5 m/ U- |) J6 c' }
getcwd(sPath,sizeof(sPath));//App.Path Y) p$ b Q! I" Y6 o8 N
strcat(sPath,"\\");
* \' v! T9 B6 }% @0 N SaveDialog1->InitialDir = sPath;
) ]6 y4 }2 U+ \5 U5 F+ Z SaveDialog1->Filter = "BIN_File(*.BIN)|*.BIN|All_File(*.*)|*.*";
1 i/ h- e' ^- y SaveDialog1->FileName="fileTo.BIN";
9 p2 r! l/ @# j8 H0 f. J if(SaveDialog1->Execute())1 a3 R" K5 K8 W9 D# H+ e
{4 K/ v1 j( M) j. v
strcpy(sPath , SaveDialog1->FileName.c_str());1 w5 u, Z8 z7 G& w9 y- E& \8 n
stream=fopen(sPath,"wb");3 I1 z* g/ J! `6 F3 X
for(int i=0;i<BIN_Byte_Len;i++)
1 ` Q0 R9 \# O0 ] fprintf(stream,"%c",&BIN_Byte); //save file- V# Z5 A, k* |$ s' h( h; u/ d
fclose(stream);
( v* H* b) ?: x! {9 x0 t0 ^: `4 k }7 E' S' E' R- D! N& D, A
free(sPath);
. f$ |4 d# N" \ free(stream);; P. g( X4 L# S. Y; B3 L; @. K
}
. @! `) ?* R- ?//---------------------------------------------------------------------------; v6 d0 N% K* S" x/ _
void __fastcall TForm1::FormDestroy(TObject *Sender)+ }3 f: y" Y s' X% {
{- \. ]2 l( f( X( ]1 C; y s( w
free(BIN_Byte);
& }$ l$ O( ^- t# ], P8 f$ @2 E/ f}& V; k3 \9 |# |* }% }3 T
//---------------------------------------------------------------------------
. W! [2 l1 S5 p* E5 g J( t$ h' X/ J! _; g6 c" B# g
打開一個檔案,再另存為另一個新檔案
+ g7 h) D- F7 m結果兩個檔案內容一樣
- o* i, i6 L- \: w5 d順序不一樣了: B" \! e: T9 K
檔案前面一段內容跑到結尾去了
+ Z4 d( C2 r$ Y1 C7 |就像下面的情況
1 R, C9 j% z7 f1 u) p原來檔案內容:ABCDEFG
) D$ Y T W" \% p/ [1 F% M新檔案內容:CDEFGAB) o* ?! _- H7 _4 B3 l0 }
老大救救小弟哦( R" `; L% {* }5 b
|
zan
|