注册 登录
编程论坛 VB6论坛

从下载的网络文本保存后的文本咋不是一样的格式啊

dq8888 发布于 2015-06-15 22:05, 490 次点击
从下载的网络文本保存后的文本咋不是一样的格式啊(如下图),想和网络文本一样换行保存,期待修正(附代码)...

只有本站会员才能查看附件,请 登录


Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Const ERROR_SUCCESS As Long = 0
Private Const BINDF_GETNEWESTVERSION As Long = &H10
Private Const INTERNET_FLAG_RELOAD As Long = &H80000000

Public Function DownloadFile(sSourceUrl As String, sLocalFile As String) As Boolean

   DownloadFile = URLDownloadToFile(0&, sSourceUrl, sLocalFile, BINDF_GETNEWESTVERSION, 0&) = ERROR_SUCCESS

End Function
Private Sub Command1_Click()
Call DownloadFile("http://www., "c:\p3.txt")
Form1.Caption = "Finish!"
End Sub
5 回复
#2
风吹过b2015-06-16 08:17
有可能是 换行符的问题。

如果对方服务器是 UNIX 系列的,那么他的换行符是 vbcr ,而WINDOWS的换行符是 vbcrlf
就会造成这样,具体需要十六进制编辑器查看确认。

处理办法:打开文件,把 vbcr 换成 vbcrlf ,然后保存,就可以了。
#3
lianyicq2015-06-16 08:45
看了下载的txt文件是"0A"换行。
#4
风吹过b2015-06-16 12:26
0A 换行,就是 chr(10) ,写成常量就是 vblf

WINDOWS的标准是: chr(13)+chr(10)换行,写成常量就是 vbcrlf

0A是十六进制,换成 十进制,就是10 。

难道我记反了?
#5
dq88882015-06-16 13:12
回复 3楼 lianyicq
换了下未达到效果


Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Const ERROR_SUCCESS As Long = 0
Private Const BINDF_GETNEWESTVERSION As Long = &H10
Private Const INTERNET_FLAG_RELOAD As Long = &H80000000

Public Function DownloadFile(sSourceUrl As String, sLocalFile As String) As Boolean

   DownloadFile = URLDownloadToFile(0&, sSourceUrl, sLocalFile, BINDF_GETNEWESTVERSION, 0&) = ERROR_SUCCESS

End Function
Private Sub Command1_Click()
Call DownloadFile("http://www., "c:\p3.txt")

H = "c:\p3.txt"
Dim inp, temp As String
Open H For Input As #1
Do While Not EOF(1)
    Line Input #1, inp
    inp = Replace(inp, vbCr, vbCrLf) 'vbOA换成vbcrlf未达到效果,vbcr换成vbcrlf未达到效果。
    temp = temp & inp & vbCrLf
Loop
Close #1




Form1.Caption = "Finish!"
End Sub
#6
lianyicq2015-06-16 13:59
回复 5楼 dq8888
在二进制文制文件中插入字节的操作需要创建一个新文件。
程序代码:
  Dim i As Byte
  Dim k As Byte
  k = &HD
  Open "c:\p3.txt" For Binary As #1
  Open "c:\p3.dat" For Binary As #2
  While (Not (EOF(1)))
    Get #1, , i
    If i = &HA Then Put #2, , k
    Put #2, , i
  Wend
  Close #1
  Close #2

1