- 在线时间
- 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;* j+ u4 N# g" e! L7 Q
//---------------------------------------------------------------------------1 M2 {$ o( h5 V q
' B+ Y0 |8 j( C& K3 a% d#include <vcl.h>; t" T; |+ X" [+ u3 J9 R0 E9 C- z& a
#pragma hdrstop, M- r" Y0 _4 C& p9 g. o8 l
/ y+ x3 i5 R, `* c
#include "Unit1.h"' n5 X8 i# o# {1 R; M1 Y: f
#include <fstream.h>3 M. K0 I' r0 U, X$ |2 @& z
#include <dir.h>
2 q9 d3 R" ^2 L- h# `" a. r4 V#include <sys\stat.h>( ^# K( E; r$ z4 k. b& u
#include <malloc.h>
" E2 d3 Q$ @4 G//---------------------------------------------------------------------------
) @) F. g: W; n0 @# U0 S#pragma package(smart_init)* E4 Z6 _% H- b9 W" g' d
#pragma resource "*.dfm"
[! D0 N# P3 I8 t$ bTForm1 *Form1;% a4 C& X* Z* R6 Q H
unsigned char *BIN_Byte;
: e8 Z% ?# g/ x8 k long BIN_Byte_Len;
+ K3 _0 {+ J% i! ?- s//---------------------------------------------------------------------------
- [ l% X# C7 X1 @! ~, s% Z__fastcall TForm1::TForm1(TComponent* Owner)
) C' n7 j. [( n% T* r! u : TForm(Owner)
$ _0 b0 }# R7 @6 c' j {+ T2 M- G{% z1 R! b2 v/ K' J& c& R! ]- Z/ K
}
# ]$ _* E7 H1 o5 W! ^" s; X//---------------------------------------------------------------------------
; z! b$ t6 B' ~3 j/ Z$ \+ Fvoid __fastcall TForm1::Button1Click(TObject *Sender)
- V; a; n \% Z* [1 L+ E' x3 ^{
' G5 A0 R3 P* ]2 c8 j char sPath[MAXPATH];; S5 u2 m# J) N" M6 y) l
struct stat statbuf;
) Z' P7 z+ [7 Z" \ FILE *stream;2 x; O5 ^) M g0 F' L
/ B" r* u+ [0 }+ J, ?
getcwd(sPath,sizeof(sPath));- w6 i- U+ [" j
OpenDialog1->InitialDir=sPath;
/ j' d/ N+ C+ ^; i* h OpenDialog1->Filter = "BIN_File(*.BIN)|*.BIN|All_File(*.*)|*.*";
& J1 B" m) B) \/ q7 q- E9 q5 E* X* g OpenDialog1->FileName="fileFrom.BIN";- x1 [( {% y' D" W4 V
if(OpenDialog1->Execute())
* E# e& G0 P3 @ g: e6 y {
/ v+ C C$ l7 M0 e) z' b strcpy(sPath,OpenDialog1->FileName.c_str());
4 F0 A" R; P% L" X1 C stream=fopen(sPath,"rb");
6 t" j& n$ I, _ fstat(fileno(stream),&statbuf);5 N1 `+ l' \1 S% l# q4 w
BIN_Byte_Len=statbuf.st_size;
, e, g0 H% r% B3 ]3 v0 E; {% ~+ H6 V BIN_Byte=(unsigned char *)alloca(BIN_Byte_Len);
& y: d4 P2 X: n. V- C+ z for(int i=0;i<BIN_Byte_Len;i++)
! K, }; v2 |& g fscanf(stream,"%c",&BIN_Byte); //read file4 A5 c" B. U/ q U B
fclose(stream);
8 ]' z' h$ P5 _" ^ }) j% |( |/ |( n& h$ {% e
free(sPath); u5 X. h0 l9 _1 D: a
free(stream);
- C B- E* b H8 z- T}
2 H" z; C* y1 D4 ?//---------------------------------------------------------------------------% d; r0 m9 `; H! ?: _
void __fastcall TForm1::Button2Click(TObject *Sender)
" B( y0 N8 t7 ]( a' O{+ \' ~6 f3 A5 Y$ w, S) Z+ [* W
char sPath[MAXPATH];
9 d) g, q$ G, _ ^ FILE *stream;
]& R! u! b3 L: z( l getcwd(sPath,sizeof(sPath));//App.Path
. [ G2 U' I5 R7 j! z* }# F strcat(sPath,"\\");
, L# R4 `: A6 e SaveDialog1->InitialDir = sPath;
. { F& Z! N! L# B3 e SaveDialog1->Filter = "BIN_File(*.BIN)|*.BIN|All_File(*.*)|*.*";
6 X! s: e9 q/ y SaveDialog1->FileName="fileTo.BIN";
, d! y3 H7 D8 o+ m if(SaveDialog1->Execute())1 z4 ~$ T6 y z) I- b( K
{' W: a% c( ^1 U6 ?! D/ B4 b
strcpy(sPath , SaveDialog1->FileName.c_str());7 r5 d7 z' z2 A3 E) Y# r6 E3 `4 l
stream=fopen(sPath,"wb");! t% t( v" n4 ]1 \; J% I% N1 b
for(int i=0;i<BIN_Byte_Len;i++)
) g6 K4 d& s0 N fprintf(stream,"%c",&BIN_Byte); //save file) q' v4 R: ^( u' |6 M+ P2 f, J
fclose(stream);
" k M4 e N. \7 e0 N }
( |( n' K% {# t! x free(sPath);+ y+ g! M2 A& a: A3 Z
free(stream);
' g F, l5 A# c% E! [/ G; _}
; m, G' L+ z' r q//---------------------------------------------------------------------------' V/ y! T' f' j- J4 g s% d- P
void __fastcall TForm1::FormDestroy(TObject *Sender)/ U8 u( M8 x$ j) l: ^+ C, ^+ d% O
{
/ |' j2 o+ g, l2 N% D free(BIN_Byte);
3 j/ |, g h( c+ K9 L6 h. M}
$ U+ u1 ?" s* i5 F//---------------------------------------------------------------------------- p; D1 |+ d' _& |% F; t
! M3 L5 K7 q' t! v
打開一個檔案,再另存為另一個新檔案" G4 d4 u' v: Y
結果兩個檔案內容一樣% N5 M U8 d- L) U
順序不一樣了
5 C/ g) d! z" S/ B4 T8 O/ e檔案前面一段內容跑到結尾去了5 `$ V1 T2 I' a6 D% }& V7 E; A; x
就像下面的情況
1 P9 ?" J! o, G# I7 ]. H W; m. C& L* O3 I原來檔案內容:ABCDEFG
( Y4 w+ q7 H: U, G% U2 F9 q. [新檔案內容:CDEFGAB
3 s% W }2 [( v% T老大救救小弟哦
+ s/ u3 ^/ I# ^7 W' B |
zan
|