这段代码有问题吗?调试执行到A之前都没问题,但是过了A行,srcFileName的值变成乱码,srcText没能获得内容
srcFileName := fodSource.FileName;
srcStream := TFileStream.Create(srcFileName, fmOpenRead);
srcStream.ReadBuffer(srcText, srcStream.Size); //A
redtSource.Text := srcText;
srcStream.Free;
srcFileName := fodSource.FileName;
srcStream := TFileStream.Create(srcFileName, fmOpenRead);
srcStream.ReadBuffer(srcText, srcStream.Size); //A
redtSource.Text := srcText;
srcStream.Free;
需要什么类型变量来接收?
srcStream := TFileStream.Create(srcFileName, fmOpenRead);
//srcStream.ReadBuffer(srcText, srcStream.Size); //String实际上只是一个指向一个String结构的指针,如果使用ReadBuffer会直接改写掉这个指针所在内存的内容,因此这个使用方法是错误的
SetLength(srcText,srcStream.Size); //先根据需要对String进行内存分配
srcStream.ReadBuffer(srcText[1], srcStream.Size); //写入到String指向的真正的内存当中
redtSource.Text := srcText;
srcStream.Free;