高分求解,多线程下载工具问题!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高分求解,多线程下载工具问题!相关的知识,希望对你有一定的参考价值。

下了个chromium更新器,貌似可以设置线程,设置多了就会很快,文件也会分成很多个一起下载,有没有这类下载工具?
先给80,采纳加满分

参考技术A 你说的问题我前些时间遇到过,游戏地图编辑器就可以;你了解STG文件存取吧,用这种文件可以达到你的需求;
以下是摘自网上
1、结构化存储技术是采用COM的技术架构,它的应用相对于常用的存储技术有一定差异。在Delphi语言中对流(Stream)的操作都是基于Tstream派生出来,象TFileStream、TMemoryStream等等都是Tstream的子类,而Delphi提供的具有相当好操作性的Treader和Twriter都是和Tstream类相对应操作的。为保持Delphi语言应用的一贯性和相互融通,Delphi语言特别提供了一个Tstream派生类TOLEStream,它专门用于针对IStream接口的相关操作。TOLEStream的构造函数为:Constructor Create(const Stream: IStream);虽然通过IStorage和IStream可以实现结构化存储技术进行文件的存取,但本人建议Delphi语言开发中最好通过TOLEStream实现结构化存储文件的存取工作。TOLEStream在Axctrls.pas中实现。
2、Delphi语言为方便开发人员,把结构化存储技术的相关函数和接口都进行封装,统一在Activex.pas单元中加以引用实现,所以要引用上述的IStorage、IStream以及相关的函数要把Activex做为引用单元。
3、关于IStorage和IStream相关函数的返回值都是Hresult,如果函数运行正常一般返回值为S_OK,为检验返回值是否正确可以调用OLECheck函数,如果IStorage和IStream相关函数返回的信息是错误的话,OLECheck将"引发" EoleSysError类的错误供开发人员调试和运行中检测。OLECheck函数封装在ComOBJ.pas单元中。
4、一般情况下,任何一个对象有创建就有释放相对应,但IStorage和IStream不需要人工释放,系统将会根据这两个接口的引用"计数器"是否为零自动释放,所以不要调用IStorage.release或IStream.release。

复杂的结构化存取(一)。
之所以说复杂, 就是区别与以前谈到的 结构化文件存取; 这种复杂的结构化文件也有叫做"复合文档".
有些文档不是结构化的, 譬如记事本文件; 结构化的档可以分为以下几类:
标准结构化文档、自定义结构化文档(譬如 bmp 文件)和复合文档.
这里要谈到的结构化储存(复合文档)是由 Windows 系统通过 COM 提供的, 它能完成像 Windows 目录结构一样复杂的文件结构的存取; 提示一下 Windows 的目录结构: 一个目录下可以包含子目录和文件, 然后层层嵌套...
有时我们要存储的文件也可能会层层分支, 具体的文件内容也可能五花八门, 譬如分支当中的某个文件是张图片、是一个字符串列表、是一个记录(或叫结构)等等, 存储这样的文件内容恐怕用数据库也是无能为力的.
这种复合文件支持多线程, 不同的进程中的不同线程可以同时访问一个复合文件的不同部分.
复合文件最典型的实例就是 OLE(譬如在 Word 中可以嵌入电子表格); 这也或许是这种复合文件的来由.
或许有了这个东西, 出品属于自己的文件格式就成了轻而易举的事情了.
存取和访问复合文档主要使用定义在 Activex 单元的三个 COM 接口:
IStorage (类似于 Windows 的目录, 也就是文件夹);
IStream (类似于目录中的文件, 不过在这里都是"流", 每个流至少要占用 512 字节);
IEnumStatStg (用于列举 IStorage 的层次结构)
"接口" 又是一个复杂的概念, 暂时把它认作是一组函数的集合吧.
追问

什么意思?什么游戏地图啊。。
你没答到点上吧

参考技术B 一般是不会有这种软件,网速是受我国网络情况决定的,没法加速追问

应该是可以编程的吧~~
看图
貌似源代码都放出来了,我只是不会用

追答

这只是将文件分割下载,与迅雷啥的原理一样

追问

迅雷就不能分割这么多文件啊,这样的速度很快
我4M的网有时候速度到一千多KB/s

追答

这只是将大文件分的更小而已,最终还是取决于网络情况

追问

但是这明显要快得多呃

追答

Chromium是一个由Google主导开发的网页浏览器。以BSD许可证等多重自由版权发行并开放源代码。Chromium的开发可能早自2006年即开始,设计思想基于简单、高速、稳定、安全等理念,在架构上使用了Apple发展出来的WebKit排版引擎、Safari的部份源代码与Firefox的成果,并采用Google独家开发出的V8引擎以提升解译javascript的效率,而且设计了“沙盒”、“黑名单”、“无痕浏览”等功能来实现稳定与安全的网页浏览环境。 Chromium是Google为发展自家的浏览器Google Chrome(以下简称Chrome)而开启的计划,所以Chromium相当于Chrome的工程版或称实验版(尽管Chrome自身也有β版阶段),新功能会率先在Chromium上实现,待验证后才会应用在Chrome上,故Chrome的功能会相对落后但较稳定。 Chromium的更新速度很快,每隔数小时即有新的开发版本发布,而且可以免安装,下载zip封装版后解压缩即可使用(Windows下也有安装版)。Chrome虽然理论上也可以免安装,但Google仅提供安装版。

而同时Chromium亦是谷歌的一个开源计划,目的是让大家可以更广泛的使用此产品(司马昭之心路人皆知,不外乎是打击IE的统治地位),目前市面上的很多浏览器都是基于Chromium开源计划制作而成的,比如著名的谷歌CHROME浏览器,是的,谷歌自身的CHROME浏览器也是基于Chromium开源计划的哦~只是还原度更高而已。
也就是说这只是浏览器的一部分,你的截图我上网找了一下是 自动更新器。

如果还有不明白的上这个网站来看看把::http://www.chromi.org/

高分求解,为何BMP图片无法打开?

有些图片(BMP)在软件中能正常显示,但是用看图软件却打不开,并且无预览,请问是什么原因,如何才能打开?
1、文件一定是图片,因为在软件中能显示。
2、看图软件是正常的,换了好几个都是打不开。
3、电脑是正常的。
...PHOTOSHOP 打不开
...ACDSee 打不开
...(强调)图片是没有问题的

分数追加到最高了,怎么还是没正确答案呢?

1.你打开那个windows自带的那个附件里的画图程序,这时才知道原来微软很了不起。
2.按文件下拉菜单,在按打开按扭。
3.打开下面的文件类型的下拉菜单,有如:位图文件(*BMP),图形转换格式(GIF)‘JPEG文件转换格式(JPG,JPEG),所有图片文件,所有文件
3.你按文件类型里的JPEG文件,打开他
4.最关键的一步了,你打开了JPEG图片以后,在按文件下拉菜单,按保存按扭,这时你一定会说有什么区别,有什么用啊,不要急,你在按下面的保存类型,你可以看见单色位图,16色位图,256位图,24位图,文件转换格式和JPEG文件转换格式。
5.最后,你只要按你要保存的是16位图啊,还是256,或者是16位图,在按保存就好了
这样原来的JPEG就转换成了BMP,同样BMP也可以这样转换成JPEG,很简单吧。连软件也不要用了
参考技术A 我有一个逆向打开的程序:
Private Sub Command1_Click()
On Error GoTo err1 '错误捕获

Dim Fname As String '。。。。。。打开一个文件
CommonDialog1.Action = 1
Fname = CommonDialog1.FileName
Open Fname For Binary As #1

Picture2.Cls

Dim bmpGeshi1 As Byte '。。。。。。判断是不是BMP图片
Dim bmpGeshi2 As Byte
Get #1, 1, bmpGeshi1
Get #1, 2, bmpGeshi2
If bmpGeshi1 = 66 And bmpGeshi2 = 77 Then
Picture2.Print "BMP"
Else
Picture2.Print "格式错误"
Close #1
Exit Sub
End If

Dim geShi As Byte '。。。。。。判断BMP图片位数
Get #1, &H1C + 1, geShi
If geShi = 24 Then
Picture2.Print "24位"
Else
Picture2.Print "文件是"; geShi; "位格式不支持,请打开24位格式的BMP"
Close #1
Exit Sub
End If

Dim Kuan As Long '。。。。。找到图片高、宽
Dim Gao As Long
Get #1, &H12 + 1, Kuan
Get #1, &H16 + 1, Gao
Picture2.Print "图像大小:宽"; Kuan; "高"; Gao
Picture1.Picture = LoadPicture() '清空图片框
Dim pos As Long '文件中点的指针
Dim Cha As Integer '行末尾填充的字节数
Cha = Abs((Kuan * 3) Mod 4 - 4) Mod 4
Picture2.Print "行末尾多余的字节"; Cha
pos = &H36 + 1
Dim ix2 As Integer '用于描出点的坐标
Dim iy2 As Integer '用于描出点的坐标
Dim yanseRed As Byte '存红色的值
Dim yanseGreen As Byte '存绿色的值
Dim yanseBlue As Byte '存蓝色的值

For iy2 = Gao - 1 To 0 Step -1 'y行 '。。。。。。描点
For ix2 = 0 To Kuan - 1 'x列
Get #1, pos, yanseBlue '得到颜色
Get #1, pos + 1, yanseGreen '得到颜色
Get #1, pos + 2, yanseRed '得到颜色
Picture1.PSet (ix2, iy2), RGB(yanseRed, yanseGreen, yanseBlue)
pos = pos + 3 '开始读下一个像素
Next ix2
pos = pos + Cha '描到了行末尾,则跳过不要的字节
Next iy2

Close #1 '正常时关闭文件
Exit Sub

err1: '错误处理
If Err = 32755 Then Exit Sub '打开文件对话框点"取消"时,发生32755错误错误
Picture2.Print "发生错误"
Close #1 '有错误时关闭文件
Exit Sub
End Sub

Private Sub Form_Load() '。。。。。。初始化
Picture1.ScaleMode = vbPixels '设定坐标为像素点
Picture1.AutoRedraw = False
Picture2.AutoRedraw = True
CommonDialog1.Filter = "文件bmp *.bmp |*.bmp| "
CommonDialog1.InitDir = App.Path
End Sub
参考技术B 文件中的部分数据丢失或出错,所以打不开,仅有预览部分正常,所以有预览图片。这种文件不一定能修复。 参考技术C 这位朋友,你试试看用PHOTOSHOP等软件打开一下,然后保存为JPEG或者GIF格式,看打不打得开,要是还打不开,就要重新装一下ACD之类的看图软件了.我原来也遇到过类似的问题,重装一遍ACDsee一般就可以了. 参考技术D 有缩略图.却无法打开?

文件损坏...用修复工具吧,但前提是原文件是你本地计算机上的,如果上网上下的图,那就没办法了...

自己搜索"EasyRecovery"去修复吧

时间会比较长...

以上是关于高分求解,多线程下载工具问题!的主要内容,如果未能解决你的问题,请参考以下文章

java 多线程 同时操作一个变量 高分悬赏

java多线程访问被限制问,高分求助 高手给个思路或方法

多线程原理是啥?

Java多线程下载分析方法

多线程异步加载图片

多线程实现多图片下载2