2011-05-20 102 views
0

我有文本文件的行,它可以有几个行分隔符。如何使用VBA将这个大行分成几行? 我需要导入这个文件。我这样做(SEP是字段分隔符):如何使用行分隔符从txt文件读取整行?

Open FName For Input Access Read As #1 

While Not EOF(1) 
    Line Input #1, WholeLine 
    If Right(WholeLine, 1) <> Sep Then 
     WholeLine = WholeLine & Sep 
    End If 

    StrArray = Split(WholeLine, Sep) 
Wend 

或可能是你可以建议我另一种方式与现场和行分隔符从导入txt文件的数据?

+0

你可以发布一个txt文件的例子吗?此外,该文件有多大? – ray 2011-05-20 20:47:06

回答

0

那么你的问题中有很多事情需要澄清,但也许这会帮助你朝正确的方向发展。我打算假设你将它附加到表中。 您必须为您的方案更改以下内容: 1. ImportTableName 2. FieldName 3. FileName 4. sDelimiter - 可能也是这样。 也不要忘记添加一些错误处理。如果您在不关闭文件的情况下退出,它将保持锁定状态,并会影响您重试导入的尝试。

Const sDelimiter As String = " sep " 
Dim rsImport As ADODB.Recordset 
Dim vShortLine As Variant 
Dim arrLongLine As Variant 
Dim sLongLine As String 
Set rsImport = New ADODB.Recordset 
With rsImport 
    .Open ImportTableName, CurrentProject.Connection, adOpenStatic, adLockOptimistic 
    Open FileName For Input As #1 ' Open file. 
    While Not EOF(1) 
     Line Input #1, sLongLine 
     arrLongLine = Split(sLongLine, sDelimiter) 
     For Each vShortLine In arrLongLine 
      .AddNew 
      !FieldName = vShortLine 
     Next 
    Wend 
    Close #1 ' Close file. 
    .UpdateBatch 
    .Close 
End With 
Set rsImport = Nothing 
相关问题