- 在线时间
- 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;5 g0 M0 w; u% k/ v6 F3 S! h
//---------------------------------------------------------------------------
7 h2 H6 t& S9 y% P& ]; W* B
P1 n* z @& s* E4 V2 h& {2 k7 N#include <vcl.h>4 G' w n0 r0 h: g* o Z0 L
#pragma hdrstop
9 F& f/ |7 D) I/ W* k: I. G, |1 z: z+ z5 w6 l; Z5 r
#include "Unit1.h"
5 y- n0 L; r7 e! \/ u#include <fstream.h>
( [- I4 j8 b [#include <dir.h>& Y' @2 W4 C/ P! o
#include <sys\stat.h>( J' q, ~. A) Q( k6 S9 i$ T& z! L( J
#include <malloc.h>0 p2 l7 R5 @: [& h, E
//---------------------------------------------------------------------------* r# m7 H" W5 y. [2 ~- X
#pragma package(smart_init)
5 f. |# u) Z" ?#pragma resource "*.dfm"
, p* K! C9 c0 R" }( j2 VTForm1 *Form1;! J; H& h+ I' p; _3 D: h
unsigned char *BIN_Byte;
3 B' O$ v, E9 C1 n5 y. l long BIN_Byte_Len;' T: E" V6 q: r. f/ u' O- {$ A
//---------------------------------------------------------------------------
* k0 g% z; y: K% I6 Z9 x8 a7 }__fastcall TForm1::TForm1(TComponent* Owner)
2 ~3 l- }& M6 w4 ?# F. b" C : TForm(Owner)3 S+ X+ X; I# T& A0 U w
{1 O! }! j& ?: x0 k; B
}3 ^. i% p f) Q* q4 c) p
//---------------------------------------------------------------------------5 c, n7 f9 [' I% x+ e" W& D S! {
void __fastcall TForm1::Button1Click(TObject *Sender). ]; j; [( Z e* s# @
{+ v1 [" [/ Z) P8 Z
char sPath[MAXPATH];
- E: f O% T1 q% N! r struct stat statbuf;
9 Y" C. o( m9 }0 U J FILE *stream;) V+ @- c# B9 Q$ X& Q4 y. h3 l
+ y. ~8 r% d2 T6 }7 G$ u+ R( s2 V) a
getcwd(sPath,sizeof(sPath));5 q) H2 P9 ]- F, W1 X
OpenDialog1->InitialDir=sPath;3 d# J$ I/ {! Q& s9 ?
OpenDialog1->Filter = "BIN_File(*.BIN)|*.BIN|All_File(*.*)|*.*";- }* X- o7 k- p, L4 z& N
OpenDialog1->FileName="fileFrom.BIN";
`3 d* v- x! b' D$ {( f; ^, o if(OpenDialog1->Execute()) }1 U$ C( y, N6 X+ q
{
4 N" A' J M3 ]/ E7 v strcpy(sPath,OpenDialog1->FileName.c_str());
) V$ ^- b( Y# ?, U2 Y p stream=fopen(sPath,"rb");/ T: y( {3 P; U" t
fstat(fileno(stream),&statbuf);
3 P) b1 D$ M% j$ }4 b" i BIN_Byte_Len=statbuf.st_size;
/ v/ x: ~% k7 c2 Z5 e, n( R) @) x BIN_Byte=(unsigned char *)alloca(BIN_Byte_Len);
& v$ x/ w1 j9 Q4 x/ C4 h for(int i=0;i<BIN_Byte_Len;i++)
8 O& p# D. h7 ]" b) R/ a fscanf(stream,"%c",&BIN_Byte); //read file4 U5 k& t F" Z: Q
fclose(stream);
& g' m9 s0 w$ e }
$ W( T* M# m3 V5 g. a2 r5 G# a free(sPath);- ?$ ^/ a3 |, c8 ^# O. o
free(stream);( d6 I' M3 q+ ]& n, r2 N9 h' X
}7 X' t: E6 [5 f; a
//---------------------------------------------------------------------------
& c7 G2 S4 e# {- @& m2 e& yvoid __fastcall TForm1::Button2Click(TObject *Sender)
* l+ i1 {4 u5 x( m' v6 r{
- q2 @( M) H4 y g5 l8 C) R# R char sPath[MAXPATH];4 M+ c6 |5 P* \/ `# m* P5 |: x) |
FILE *stream;
& w( d% w2 X, R getcwd(sPath,sizeof(sPath));//App.Path
. V( ^7 Z$ B, B' V- b+ M! p strcat(sPath,"\\");2 ]( F% E" F; i- D: p. ~
SaveDialog1->InitialDir = sPath;( R6 K' S' Y: F+ ?
SaveDialog1->Filter = "BIN_File(*.BIN)|*.BIN|All_File(*.*)|*.*";! [1 U3 ~/ X' c! q3 F
SaveDialog1->FileName="fileTo.BIN";5 s! G0 m) E% s! V& S) e h+ V
if(SaveDialog1->Execute())7 h' x! D1 I* i g% ]1 ~; D
{% L0 ]+ Y9 Y( b. j2 B
strcpy(sPath , SaveDialog1->FileName.c_str());
9 h; _" a* E% X stream=fopen(sPath,"wb");
" {' k6 X- O# C# E" n) W for(int i=0;i<BIN_Byte_Len;i++)
/ R; f6 k, n+ B# \$ u& A fprintf(stream,"%c",&BIN_Byte); //save file
; L, ~6 R8 J. Y% g fclose(stream);
+ L& T* f% v/ O G$ m! N, v }
0 a, s# i3 E6 H& m3 }7 i7 j" S free(sPath);
& _6 t- ]* I$ w, N3 l free(stream);
2 b0 ]3 o3 i T9 D; ^& E}8 q: U' _9 M4 C( \! R# I9 c9 z% Z
//---------------------------------------------------------------------------; r: s) E$ h6 v4 f- L1 ^+ K
void __fastcall TForm1::FormDestroy(TObject *Sender)
' N8 C4 {9 D0 q& x x4 O{
' \5 _" R' H+ d7 K free(BIN_Byte);9 p# {, z0 H% V
}
) t( }* @0 h0 A. N( X6 m7 e ^//---------------------------------------------------------------------------, q* D/ w# V& _. x, u" y
0 Z4 `( ], v8 o' N
打開一個檔案,再另存為另一個新檔案
- L9 l- H/ q6 n' t( L0 P結果兩個檔案內容一樣7 v7 V" y+ {/ e* @% f0 K. t
順序不一樣了
% K$ K, D( \( L5 O2 Z6 `4 c7 A0 h2 b檔案前面一段內容跑到結尾去了0 e7 k8 d0 K* }; F; X. r0 r1 p4 ^
就像下面的情況
4 g' D# ?& g9 G) N5 d# b原來檔案內容:ABCDEFG6 ~3 Y3 f& q& |' W6 d
新檔案內容:CDEFGAB
2 q# m9 D2 {2 w2 j {老大救救小弟哦" Z% i9 b5 J: O& p% ` w
|
zan
|