我的目的是想把一文本文件的内容通过流技术 然后能取任一字符赋给一变量
假设a 内容是'abcdefg'怎样把 c 赋给svar
 f1:TMemoryStream;
 s,filename,filename2:string;
 buffer:array[1..20]of char;
 //mydate array[1..30] of byte;
 //bytesread:longint;//i:integer;
 begin
   filename:='C:\Documents and Settings\tzx1\桌面\a.txt';
   filename2:='C:\Documents and Settings\tzx1\桌面\aa.txt';
   f1:=TMemoryStream.Create ;
   f1.LoadFromFile(filename);    //memo1.Lines.LoadFromStream(f1);
    f1.SaveToFile(filename2);
    f1.WriteBuffer(buffer,f1.size);
    s:=copy(buffer[1],2,5);
   showmessage(s);
end;

解决方案 »

  1.   

    Copy(a, 2, 1);
    参数:
      1、要操作的字符串
      2、开始位置
      3、复制多少位
      

  2.   

    多谢! 对于此问题 参数a 是个 char 数组 (声明的一缓冲区) 该怎样做 ?
      

  3.   

    把你的改一下:
    var
     f1:TMemoryStream;
     s,filename,filename2:string;
     buffer:array[1..20]of char;
     //mydate array[1..30] of byte;
     //bytesread:longint;//i:integer;
     begin
       filename:='C:\Documents and Settings\tzx1\桌面\a.txt';
       filename2:='C:\Documents and Settings\tzx1\桌面\aa.txt';
       f1:=TMemoryStream.Create ;
       f1.LoadFromFile(filename);
       ZeroMemory(@buffer, SizeOf(buffer));
        //memo1.Lines.LoadFromStream(f1);
       CopyMemory(@buffer, f1.Memory, f1.Size);
       f1.SaveToFile(filename2);
     //   f1.WriteBuffer(buffer,10);
       s:=copy(buffer,2,5);
       showmessage(s);
    end;