2017-02-22 14 views
-1

В моем вложенном файле csv у меня могут быть следующие специальные символы в любом месте файла. Я должен заменить некоторые специальные символы на некоторые альтернативные тексты. Как это сделать в скрипте vb?VB Script - удалить специальные символы из файла csv

® ³ · • ½ × ï Ε - ∞∞ «≤≥ •

+2

Читайте и следуйте за _Hey, Scripting Guy! Blog_: [Как найти и заменить текст в текстовом файле?] (Https://blogs.technet.microsoft.com/heyscriptingguy/2005/02/08/how-can-i-find-and-replace-text -в-текстовый файл /). Затем, отредактируйте свой вопрос и покажите [mcve] вашего кода, если вы застряли в чем-то. – JosefZ

+0

Какая кодировка символов используется для записи вашего CSV-файла? (Весь текст имеет кодировку. Если вы не знаете, что это такое, вы не можете его правильно прочитать.) VB Script работает естественно с UTF-16, но может конвертировать с использованием кодовой страницы ANSI по умолчанию. Кодовая страница ANSI по умолчанию является одним из десятков кодировок и изменяется со временем, пользователем и системой, поэтому делает сообщение очень сложным. Примечание. Смутно, UTF-16 называется Unicode в документации VB Script и в другом месте. –

ответ

0

Мы можем перебирать каждую ячейку файла CSV и в каждой ячейке проверить каждый байт и сравнить его с Ascii значения, основанные на вашем требовании, и если значение Ascii этого не подпадает под диапазон значений, которые мы ожидаем, мы можем заменить его любым текстом, который вам нужен. Пример кода ниже

Workbooks.Open("Your CSV file") 
for k = 1 to Activeworkbook.Sheets(1).usedrange.rows.count 

for j= 1 to Activeworkbook.Sheets(1).usedrange.columns.count 
value=Activeworkbook.sheets(1).cells(k,j) 
newvalue="" 
for i=1 to len(value)-1 

temp=mid(value,i,1) 
if (Asc(temp)<127 and Asc(temp)>31)then ' i am just assuming only the values on keyboard should be included any other conditions required for your requirement can be implied here 

newvalue=newvalue & temp 

else 

newvalue=newvalue &"required text" 
endif 

next 

activeworkbook.sheets(1).cells(k,j)=newvalue 

next 
next 
+0

Это будет VBA, а не VB Script. Хотя работа в Excel может быть намного более продуктивной. Возможно, вопрос, который задал вопрос, перенесет там работу. –

Смежные вопросы