var
  s,xors:string;
  i:integer;
  SL:TStrings;
begin
  SL:=TStringList.Create;
  if opendialog1.Execute then
    memo1.Lines.LoadFromFile(opendialog1.FileName);
  s:=memo1.Text;
  SetLength(xors,Length(s));
  for i:=1 to length(s) do
    xors[i]:=chr((ord(s[i])) xor (strtoint(edit1.Text)));
  Sl.Add(xors);
  sl.SaveToFile('e:\item.dat');
end;不论读入的数据多大,最多只能读取41.9K,是TEXT的问题吗?

解决方案 »

  1.   

    ascii =0 的字符就会结束
      

  2.   

    是用TFileStream吗?那应该怎么改呢?我对流操作不熟悉.
      

  3.   

    var
      st:TStream;
      str:string;
      i:integer;
      SL:tstrings;
    begin
      if opendialog1.Execute then
      st:=TFileStream.Create(opendialog1.FileName,fmOpenRead);
      setlength(str,st.size);
      st.Read(str[1],st.Size);
      for i:= 1 to st.Size do
        str[i]:=chr(ord(str[i]) xor strtoint(trim(edit1.text)));
      sl:=TstringList.Create ;
      sl.Add(str);
      sl.SaveToFile('e:\item.dat');
      st.Free;
    end;试下这个