首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按脚本组件处理unicode平面文件

按脚本组件处理unicode平面文件
EN

Stack Overflow用户
提问于 2017-05-26 11:32:38
回答 2查看 319关注 0票数 2

我有一个尴尬的平面文件输入,几乎可以是任何长度。这是一个逗号分隔的文件,但是嵌入了由"{“和"}”或"{“和"}”分隔的表。取决于表类型。我不能使用现成的SSIS逗号分隔的平面文件,因为可能有记录,根本没有嵌入式表。为了解决这个问题,我将平面文件的输入设置为“乱七八糟”,其中一列有8,000个字符。

然后,我在脚本组件中执行字符串拆分,并将表数据输出到不同的输出流。

然而,我现在正在接收超过8000字符的文件,这些文件破坏了我的进程。

我尝试用NTEXT中的列将"1252 (ANSI拉丁文1)“中的平面文件转换为unicode。

然后,我插入了以下代码,以将其转换为字符串(参见http://www.bimonkey.com/2010/09/convert-text-stream-to-string/ )

代码语言:javascript
复制
  Dim TextStream As Byte()            ' To hold Text Stream
  Dim TextStreamAsString As String    ' To Hold Text Stream converted to String
    ' Load Text Stream into variable
     TextStream = Row.CopyofColumn0.GetBlobData(0, CInt(Row.CopyofColumn0.Length))

    ' Convert Text Stream to string
     TextStreamAsString = System.Text.Encoding.Unicode.GetString(TextStream)

但是,当我看到字符串,我得到了很多汉字类型的字符,没有行提要。

有什么我可以尝试的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-26 13:11:50

您可以使用脚本源组件来打开带有文件系统对象的文件,而不是使用平面文件源。

票数 0
EN

Stack Overflow用户

发布于 2017-05-26 14:47:20

由于我发现很难在SSIS vb.net脚本组件源代码转换中找到与使用文件系统对象完全匹配的对象,所以我想我应该分享我的发现!

需要下列进口

代码语言:javascript
复制
Imports System.IO
Imports System.Text

还有密码..。

代码语言:javascript
复制
 Public Overrides Sub CreateNewOutputRows()
<Output Name>Buffer".
    Dim strFilePath As String
    Dim strFileContent As String
    Dim objFileInfo As FileInfo
    Dim objStreamReader As StreamReader

    Try
        strFilePath = "c:\myfile.csv" 'Me.Variables.FullFilePath
        objFileInfo = New FileInfo(strFilePath)
        objStreamReader = New StreamReader(strFilePath)
        Do Until objStreamReader.EndOfStream
            strFileContent = objStreamReader.ReadLine               
            Process_data(strFileContent) ' do the work in this a sub!
        Loop            
    Catch ex As Exception
        MessageBox.Show(ex.Message.ToString(), "Error", MessageBoxButtons.OK)
    End Try
End Sub

注意:我使用foreach循环来获得脚本中的文件名。这里的硬编码文件路径就是一个例子。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44200547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档