DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: wjy13061029975
今日帖子: 0
在线用户: 10
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 amer (amer) ★☆☆☆☆ -
盒子活跃会员
2003/9/7 23:32:57
标题:
怎样把一个流转成一个String啊?? 浏览:3155
加入我的收藏
楼主: 流里面有一个EXE文件
----------------------------------------------
-
作者:
男 amer (amer) ★☆☆☆☆ -
盒子活跃会员
2003/9/7 23:35:42
1楼: 我这样写怎么转不了啊??

  with TFileStream.create(FileName,fmOpenRead or fmShareDenyNone) do
  try
    SetLength(Result,Size);
    Read(Result, size);
  finally
    Free;
  end;
----------------------------------------------
-
作者:
男 namelysweet (就是甜) ★☆☆☆☆ -
盒子活跃会员
2003/9/8 10:09:08
2楼: 我也想知道这个问题的答案,可否直接转换记录到数据库里呢???
----------------------------------------------
-
作者:
男 lyx2ccc (lyx) ★☆☆☆☆ -
盒子活跃会员
2003/9/8 10:31:32
3楼: 请教如何在delphi6中控制报表每页记录的个数,小弟在此谢过!!!
lyx1998@163.com
我正急着用!!!
----------------------------------------------
-
作者:
男 amer (amer) ★☆☆☆☆ -
盒子活跃会员
2003/9/8 18:11:55
4楼: 老大呢!!

过来帮帮忙吧。。这样忒痛苦啊

----------------------------------------------
-
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2003/9/8 18:37:31
5楼: 完整代码贴出来看看,size是什么,怎么定义的。
转不了出现什么现象或者错误,不然我怎么知道什么错误。
----------------------------------------------
维护世界和平,共创美好盒子。
作者:
男 amer (amer) ★☆☆☆☆ -
盒子活跃会员
2003/9/8 19:11:34
6楼: 我就是想把一个EXE或图片保存到BLOB里去

function extractFile(SourceFile : string) : string;
var
  Source:TFileStream;
  S : String;
begin
  Source := TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);
  try
    Source.Read(s,source.size);//读出资源
    result := s;
  finally
    Source.Free;
  end;

我是这样调用的
    sFileName:=OpenDialog1.FileName;
    adoDataSet1.append;
    AdoDataSet1.FieldByName('Name').asString := ExtractFileName(sFileName);
    AdoDataSet1.FieldByName('Blobs').AsString:=
      extractFile(sFileName);
    adoDataSet1.Post;
这是错误!
此帖子包含附件:
JPEG 图像
大小:53.9K
----------------------------------------------
-
作者:
男 amer (amer) ★☆☆☆☆ -
盒子活跃会员
2003/9/8 19:13:38
7楼: 老大,我发完了,快来啊!!!
----------------------------------------------
-
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2003/9/8 21:13:43
8楼: 有没有字段AsStream什么的,估计错误在s:string上面,文件多大呀,字符串能存多少,我记得字符串变量也好多种,shortstring只能保存255个字符,普通string存多少忘了。
Source.Read(s,source.size);
看看 Read后面提示的参数s可以为什么类型的。
----------------------------------------------
维护世界和平,共创美好盒子。
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2003/9/8 21:17:50
9楼: var
  Source:TFileStream;
Source := TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);
AdoDataSet1.FieldByName('Blobs').asblob:=Source.datastring;
这样试试看。
或者干脆就用Tblobstream类型的流。
----------------------------------------------
维护世界和平,共创美好盒子。
作者:
男 amer (amer) ★☆☆☆☆ -
盒子活跃会员
2003/9/8 21:57:20
10楼: 没有这个属性吧。。

Source.datastring

我这样改就没错了,可我不知道为啥

Source.Read(s[1],source.size);//读出资源

----------------------------------------------
-
作者:
男 amer (amer) ★☆☆☆☆ -
盒子活跃会员
2003/9/8 23:36:13
11楼: ZiZii老大啊!!

帮帮我这个被捆饶的孩子吧。。
----------------------------------------------
-
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2003/9/8 23:42:16
12楼: Source.Read(s[1],source.size);//读出资源
这句代码没有错只是表示调试通过而已,其实读入了吗?
你下载首页的搜索一下“葵花宝典”看看,建议使用Tblobstream。
----------------------------------------------
维护世界和平,共创美好盒子。
作者:
男 amer (amer) ★☆☆☆☆ -
盒子活跃会员
2003/9/8 23:57:35
13楼: Source.Read(s[1],source.size);

确实读进去了,也没有错误

可这个代码我就理解不了了。。
----------------------------------------------
-
作者:
男 amer (amer) ★☆☆☆☆ -
盒子活跃会员
2003/9/9 16:14:41
14楼: 班主呢啊 ,来啊!

就只着你活着呢啊!
----------------------------------------------
-
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2003/9/9 16:53:29
15楼: 我也快死了,不过几十年后而已。
------------------------------------------
function extractFile(SourceFile : string) : string;
var
  Source:TFileStream;
  S :String;
begin
  Source := TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);
  try
    Source.Read(s[1],source.Size);//读出资源
    result := s;
  finally
    Source.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  memo1.Lines.Add(extractFile('c:\1.txt'));
end;
--------------------------------------------------
以上是我的测试,根本读不出来。
--------------------------------------------------
function extractFile(SourceFile : string) : string;
var
  Source:TFileStream;
  Des:TStringStream  ;
  S :String;
begin
  Source := TFileStream.Create(SourceFile,fmOpenRead or fmShareDenyNone);
  Des:=TStringStream.Create(s);
  try
    Des.CopyFrom(Source,Source.Size);
    result := des.datastring;
  finally
    Des.Free;
    Source.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  memo1.Lines.Add(extractFile('c:\1.txt'));
end;
--------------------------------------------------------
我改写的,这个就可以。
----------------------------------------------
维护世界和平,共创美好盒子。
作者:
男 namelysweet (就是甜) ★☆☆☆☆ -
盒子活跃会员
2003/9/9 17:14:59
16楼: 老大果然厉害啊

我找到了一篇文章,不知道对大家有没有帮助。。。



http://www.delphiok.com/bcjq/all/115.htm
----------------------------------------------
-
作者:
男 amer (amer) ★☆☆☆☆ -
盒子活跃会员
2003/9/9 22:58:13
17楼: 老大Read函数的是什么意思啊!!

是不是
读取Count大小的数据到Buffer里,也就相当于Buffer里写数据,从Buffer的[1]开始写,写Count这么大的数据

气死我了,脑袋就是琢磨不透这个问题。。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行59.021毫秒 RSS