这看起来很容易(我已经完成了一百万次,从来没有遇到过问题),但这让我很伤心.
我想根据Excel电子表格中的内容创建一些SQL脚本.为此,我创建了一个使用以下代码读取文本文件的宏
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim stream As TextStream
Set stream = fso.OpenTextFile(filepath, 8, False)
Run Code Online (Sandbox Code Playgroud)
这应该打开文本文件以追加并插入我的新值.
不幸的是,它总是被覆盖而不是追加,这让我疯狂.
有任何想法吗?
如果文件夹中只有一个文件,我可以在不知道其名称的情况下选择它或者遍历文件夹中的文件吗?
(代码是VBS,但它可以是任何东西,FSO在这里是有趣的部分.)
这不适合我:
dim fso
set fso = CreateObject("Scripting.FileSystemObject")
dim myFolder
Set myFolder = fso.getFolder("E:\test")
Dim myfiles
Set myfiles = myFolder.Files
WScript.Echo myfiles.Item(0).Path
Run Code Online (Sandbox Code Playgroud)
两者都没有WScript.Echo myfiles(0).Path奏效.(测试指数0,1都失败了.)
使用for each来获得一个文件似乎有点过分.此外,我不应该以某种方式迭代一个简单的For循环,而不是For Each?所以必须有索引......我似乎无法找到它们.
我收到了一位来自这里的好朋友的代码,他们愿意花时间和精力与新手分享他们的知识:
Sub ReadLinesFromAFileOneAfterAnother ()
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, MyFile, FileName, TextLine
Set fso = CreateObject("Scripting.FileSystemObject")
FileName = "c:\testfile.txt"
Set MyFile = fso.OpenTextFile(FileName, ForReading)
'' Read from the file
Do While MyFile.AtEndOfStream <> True
TextLine = MyFile.ReadLine
'' Do stuff to TextLine
Loop
MyFile.Close
End Sub
Run Code Online (Sandbox Code Playgroud)
虽然我知道这段代码执行了什么任务,但我仍然想知道它的每个元素的含义和作用.任何人都可以向我解释一下这段代码的第三行是什么:
Dim fso, MyFile, FileName, TextLine
Run Code Online (Sandbox Code Playgroud)
什么是"fso"首先?我知道它代表"文件系统对象",但它没有什么可以向我解释它实际是什么以及它实现了什么.这三个词后面的意思是什么("MyFile","FileName","TextLine")?它们是某种参数吗?
我读过这个:http: //msdn.microsoft.com/en-us/library/h7se9d4f(VS.85).aspx
这个:http://msdn.microsoft.com/en-us/library/ebkhfaaz(VS.85).aspx
但感觉就像那些自己能够写出来的人那些材料一样 - 我几乎什么都不懂.当然,有些事情或多或少都很清楚,但还有很多其他的术语和文字我都不知道!最终,没有一个完整而清晰的画面.
所以,我放弃了,决定回到这里.这个网站可能是互联网上为数不多的(实际上我还没有遇到任何其他网站)在其规则中声明的网站之一:"毫无疑问太琐碎或太"新手"".这给了我一个问这个问题的理由.
所以,请任何人,用简单的语言向我解释"fso"是什么.确切地说,上面代码的第三行是关于什么的.
谢谢大家.
我试图在用户点击链接删除它时删除图像文件.我没有错误,错误号为零.但是,该文件不会被删除.我可以保存照片文件,但不能因某些原因删除它们.这是我的代码:
PhotoFile = "\images\networkPartners\" & rs(fieldName)
PhotoPath = Server.MapPath(PhotoFile)
dim ServerFSO
Set ServerFSO=Server.CreateObject("Scripting.FileSystemObject")
if ServerFSO.FileExists(PhotoPath) then
response.Write(PhotoPath)
ServerFSO.DeleteFile(PhotoPath)
end if
set ServerFSO=nothing
Run Code Online (Sandbox Code Playgroud)
当response.write命中时,我确实得到了实际的文件路径.("C:/ web/images"等)一直到文件名.所有大写都是正确的等等.再次,当我执行"on next resume next"并写出错误号和字符串时,根本没有错误.
呼叫:
ServerFSO.DeleteFile(PhotoPath, true)
Run Code Online (Sandbox Code Playgroud)
导致错误:
Microsoft VBScript compilation error '800a0414'
Cannot use parentheses when calling a Sub
/folder/file_edit.asp, line 32
ServerFSO.DeleteFile(PhotoPath, true)
-------------------------------------^
Run Code Online (Sandbox Code Playgroud) 我有一个循环,在.ini文件中找到重复的行.我可以愉快地找到重复的行,并使用FileSystemObject将新行写入文件,但是...我似乎无法找到如何删除重复的行.我想要做的是删除行号,因为我已经确定了相关的行号.
是否有本地方法来执行此操作,还是重写文件减去重复行的情况?
任何帮助是极大的赞赏.
谢谢.
我找到重复条目的方法如下:
Do While Not file.AtEndOfStream
intLineNumber = intLineNumber + 1
strReadLineText = file.ReadLine
If strSearchText <> "" And InStr(strReadLineText, strSearchText) > 0 Then
session("message") = "Line Exists on " + Cstr(intLineNumber)
'' # delete duplicate line...
End If
Loop
file.Close()
Run Code Online (Sandbox Code Playgroud)
你可以看到我的评论在哪里,我希望删除找到的行.
如何使用VB6快速将文本文件加载到字符串中?
例如:
var a = " ";
var b = "";
b = a * 8;
alert(b +"this far to the right");
Run Code Online (Sandbox Code Playgroud)
注意:我不想使用,因为ActiveX FSO将用于写入文本文件而不是html文件.所以它只需要空格:
我正在努力实现的更详尽的细节:
我试图让ActiveX FSO在提交表单后从HTML订单表单写入文本文件,然后继续将订单写入文本文件.文本文件需要采用特定格式,以便Microsoft Dynamics接受作为导入销售.
如下所示:客户代码 空间 商品代码 空间 数量 空间:
import.txt减去字符串长度,其中slot =要填充的剩余空格.
C242299A *4 white spaces* 2890 *12 white spaces* 20 *6 white spaces*
[------------][----------------][--------]
12 char slots 16 char slots 8 char slots
Run Code Online (Sandbox Code Playgroud)
write.js将创建这个import.txt文件(这是我需要帮助的部分)
var customercode = document.getElementById("customercode").value;
var itemcode = document.getElementById("itemcode").value;
var quantity = document.getElementById("quantity").value;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var …Run Code Online (Sandbox Code Playgroud) asp-classic ×2
file-io ×2
fso ×2
vba ×2
createobject ×1
javascript ×1
jquery ×1
scripting ×1
string ×1
vb6 ×1
vbscript ×1