全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3042
推到 Plurk!
推到 Facebook!

请教SaveToFile使用

尚未結案
xxxxzxx
一般會員


發表:21
回覆:49
積分:24
註冊:2004-11-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-07 23:57:34 IP:220.163.xxx.xxx 未訂閱
有memo1和memo2请问任何将memo1 memo1中的字元用SaveToFile保存在同一个.txt中像如下格式: memo1 aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa memo2 bbbbbbbbbbbbbbbbbb bbbbbbbbbbbbbbbbbb bbbbbbbbbbbbbbbbbb 小弟用memo1.Lines.SaveToFile('1.txt');这样的方法但存在覆盖,不知如何做?随便问各位大大,程序日志的处理办法。如程序日志保存成.txt后如何加密,或在程序执行中.txt(类似win2000中的系统日志.log)不能被其他程序打开,我该如何做?谢谢。 發表人 - xxxxzxx 於 2005/06/07 23:59:43
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-08 07:50:50 IP:210.69.xxx.xxx 未訂閱
利用另一個 Memo3    
begin
  Memo3.Clear;
  Memo3.Lines.Append('Memo1');
  Memo3.Lines.Append(Memo1.Text);
  Memo3.Lines.Append('Memo2');
  Memo3.Lines.Append(Memo2.Text);
end;
********************* 如果您滿意答案,請結案 *********************
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
odyaho
初階會員


發表:60
回覆:104
積分:42
註冊:2005-02-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-08 08:56:20 IP:202.181.xxx.xxx 未訂閱
Dear xxxxzxx: 也可使用檔案  如下 FILE *fp; fp = fopen("file", "mode"); 您可使用的mode如下 mode: a , a 第二個是"a加" (因為"加"秀不出來)
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-08 11:39:31 IP:218.15.xxx.xxx 未訂閱
插花: xxxxzxx您好,将两个Memo保存到同一个.txt中,格式不变,可参考如下:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyStringList:TStringList;
begin
  MyStringList:=TStringList.Create;
  MyStringList.AddStrings(Memo1.Lines);
  MyStringList.AddStrings(Memo2.Lines);
  MyStringList.SaveToFile('f:\test.txt');
end;
至于文本的加密,可参考:
//…………………………
//作者:Sean Mathews
//…………………………
unit EncryptIt;    interface
USES
    Classes;
const
     C1 = 52845;
     C2 = 22719;    function Encrypt(const S: String; Key: Word): String;  //字串加密
function Decrypt(const S: String; Key: Word): String; //字串解密
procedure EncryptFile(INFName, OutFName : String; Key : Word);//文件加密
procedure DecryptFile(INFName, OutFName : String; Key : Word);//文件解密    implementation    function Encrypt(const S: String; Key: Word): String;
var
   I: Integer;
begin
  Result := S;
  for I := 1 to Length(S) do
      begin
           Result[I] := char(byte(S[I]) xor (Key shr 8));
           Key := (byte(Result[I])   Key) * C1   C2;
      end;
  end;    function Decrypt(const S: String; Key: Word): String;
var
   I: Integer;
begin
  Result := S;
  for I := 1 to Length(S) do
      begin
           Result[I] := char(byte(S[I]) xor (Key shr 8));
           Key := (byte(S[I])   Key) * C1   C2;
      end;
  end;    procedure EncryptFile(INFName, OutFName : String; Key : Word);
VAR
   MS, SS : TMemoryStream;
   X : Integer;
   C : Byte;
begin
MS := TMemoryStream.Create;
SS := TMemoryStream.Create;
    TRY
       MS.LoadFromFile(INFName);
       MS.Position := 0;
       FOR X := 0 TO MS.Size - 1 DO
             begin
                  MS.Read(C, 1);
                  C := (C xor (Key shr 8));
                  Key := (C   Key) * C1   C2;
                  SS.Write(C,1);
             end;
       SS.SaveToFile(OutFName);
    FINALLY
           SS.Free;
           MS.Free;
    end;
end;    procedure DecryptFile(INFName, OutFName : String; Key : Word);
VAR
   MS, SS : TMemoryStream;
   X : Integer;
   C, O : Byte;
begin
MS := TMemoryStream.Create;
SS := TMemoryStream.Create;
    TRY
       MS.LoadFromFile(INFName);
       MS.Position := 0;
       FOR X := 0 TO MS.Size - 1 DO
             begin
                  MS.Read(C, 1);
                  O := C;
                  C := (C xor (Key shr 8));
                  Key := (O   Key) * C1   C2;
                  SS.Write(C,1);
             end;
       SS.SaveToFile(OutFName);
    FINALLY
           SS.Free;
           MS.Free;
    end;
end;    end.
使用:
procedure TForm1.Button2Click(Sender: TObject);
begin
  EncryptFile('f:\test.txt','f:\test.txt',111);
end;    procedure TForm1.Button3Click(Sender: TObject);
begin
  DecryptFile('f:\test.txt','f:\test.txt',111);
end;
参考试试看 <> ============================ 为什么经过多年以后,得失的过程如此冷漠 ============================
xxxxzxx
一般會員


發表:21
回覆:49
積分:24
註冊:2004-11-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-08 20:28:25 IP:220.163.xxx.xxx 未訂閱
谢谢deity您的回答。    
引言: Dear xxxxzxx: 也可使用檔案 如下 FILE *fp; fp = fopen("file", "mode"); 您可使用的mode如下 mode: a , a 第二個是"a加" (因為"加"秀不出來)
odyaho兄小弟愚笨您能讲清楚点吗?谢谢
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-08 20:46:55 IP:211.22.xxx.xxx 未訂閱
引言: 谢谢deity您的回答。
引言: Dear xxxxzxx: 也可使用檔案 如下 FILE *fp; fp = fopen("file", "mode"); 您可使用的mode如下 mode: a , a 第二個是"a加" (因為"加"秀不出來)
odyaho兄小弟愚笨您能讲清楚点吗?谢谢
上面是標準C的檔案操作函數,MODE指的是開啟檔案的模式,a表示append,r表示read,w表示write,而其中每一個都可再加上b(binary)參數,如rb就是開啟二進位檔讀取,詳細請查閱C標準函式庫fopen,這是C的檔案操作,應該不是你要的Delphi。 -----------------------------------------------
xxxxzxx
一般會員


發表:21
回覆:49
積分:24
註冊:2004-11-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-08 23:38:41 IP:220.163.xxx.xxx 未訂閱
引言:
引言: 谢谢deity您的回答。
引言: Dear xxxxzxx: 也可使用檔案 如下 FILE *fp; fp = fopen("file", "mode"); 您可使用的mode如下 mode: a , a 第二個是"a加" (因為"加"秀不出來)
odyaho兄小弟愚笨您能讲清楚点吗?谢谢
上面是標準C的檔案操作函數,MODE指的是開啟檔案的模式,a表示append,r表示read,w表示write,而其中每一個都可再加上b(binary)參數,如rb就是開啟二進位檔讀取,詳細請查閱C標準函式庫fopen,這是C的檔案操作,應該不是你要的Delphi。 ----------------------------------------------- >< face="Verdana, Arial, Helvetica"> 谢谢Stallion,怪不的看着怪怪的...
系統時間:2024-06-02 18:24:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!