【问题标题】:Characters as numbers and special characters作为数字和特殊字符的字符
【发布时间】:2013-03-21 14:32:56
【问题描述】:

这里是描述: 我正在通过复制/粘贴从 .xls 文件制作 .csv 文件。 比 .csv 文件加载到数据库中的表中。

问题: 当我从文件中复制数据时,也会复制一些“特殊”字符。然而,这些“特殊”字符在 .xls 文件中不会被注意到,因为它们在那里显示为空白。

问题: 我可以使用哪种工具(免费软件)或哪种方法来识别这个“特殊”字符,以便删除它们?我想它应该是某种工具,可以通过某些数字等价物来识别特定字符。

【问题讨论】:

  • 记事本查找/替换?? - 或者直接将 Excel 文件加载到数据库中......
  • notepad-plus-plus.org - NotePad ++ 也有 Regex Matching 用于一次删除/替换大量特定字符
  • 更换它们没有问题。识别它们是个问题。当我在 Notepad++(我正在使用)而不是特殊字符中打开文件时,我只看到空白
  • 如果你在 Notepad++ 中打开它并保存它并保留特殊字符,那么它们就在那里,你只是看不到它们(它们对你来说被视为空格) - 也许是一个正则表达式沿Posix [:print:] - regular-expressions.info/posixbrackets.html 的行替换
  • @Adam 帮不了你...我想我是在回答第二部分,“我可以使用哪种方法来识别这个'特殊'字符..." 当有这么简单的基于 VBA 的解决方案来解决这个问题时,我个人不会使用 3p 工具。一旦你确定了特殊字符的 Chr() 值,它可能不超过 30 行 VBA。

标签: database excel character-encoding special-characters text-editor


【解决方案1】:

来自上一个问题:

Text file in VBA: Open/Find Replace/SaveAs/Close File

Sub ReplaceStringInFile()

Dim sBuf As String
Dim sTemp As String
Dim iFileNum As Integer
Dim sFileName As String

sFileName = "C:\Temp\test.txt" '<-- Edit as needed

iFileNum = FreeFile
Open sFileName For Input As iFileNum
Do Until EOF(iFileNum)
    Line Input #iFileNum, sBuf
    sTemp = sTemp & sBuf & vbCrLf
Loop
Close iFileNum
sTemp = Replace(sTemp, "THIS", "THAT")  '<--- edit as needed

iFileNum = FreeFile
Open sFileName For Output As iFileNum
Print #iFileNum, sTemp
Close iFileNum

End Sub

您可能需要做的是更改这一行:

sTemp = Replace(sTemp, "THIS", "THAT")

这样的:

sTemp = Replace(sTemp, Chr(10), vbNullString)

这会将所有回车替换为 null。显然,您需要以某种方式确定要删除的 CHR() 值是什么。

这是一个可能有用的 CHR() 值列表。

http://www.techonthenet.com/ascii/chart.php

【讨论】:

    猜你喜欢
    • 2015-07-10
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2017-05-02
    • 1970-01-01
    • 2017-10-29
    • 2020-05-18
    • 1970-01-01
    相关资源
    最近更新 更多