убрать запятую из двойных кавычек при импорте CSV-файла с использованием классического ASP

asp-classic

282 просмотра

2 ответа

1 Репутация автора

У меня есть данные CSV, как это "1233","abcxyz","1,500","Qwerty","25,000"

Как убрать запятые этого типа значений ( "1,500", "25,000") при импорте CSV в classicASP

Автор: user2801829 Источник Размещён: 19.07.2016 01:32

Ответы (2)


0 плюса

2932 Репутация автора

Если ваш CSV не слишком большой, реализуйте FileSystemObject.OpenTextFile и читайте его символ за символом, накапливая результаты внутри как String. Сделайте сравнительную логику, чтобы игнорировать все двойные кавычки, найденные во время чтения. Это будет не так просто именно потому, что вы будете иметь дело с кавычками, поэтому вам потребуется некоторая техника побега.

Если у вас есть числа в последовательности, и если эти числа помечают запятыми десятичные точки или тысячи (миллионы и т. Д.), То у вас будет больше проблем, вызвав что-то вроде вашего примера («1500», «25000») после чтения и записи символа с помощью char получит это: (1500,25,000). Решением этой проблемы было бы преобразование всех запятых между двойными кавычками в ;.

РЕДАКТИРОВАТЬ: Я думал ... может быть, чтение Все может сделать тоже самое. Давай попробуем:

path = Server.MapPath("\yoursite\yourfile.csv") 'this is absolute path on server (c:\ etc) - not url!
set fs = CreateObject("Scripting.FileSystemObject")
if fs.FileExists(path) then
     set file = fs.OpenTextFile(path, 1)
     txt = file.ReadAll
     for i = 1 to (Len(txt)-1)
          if file.Read(i) = """ then
               i = i + 1
          else
               txtaux = txtaux & file.Read(i)
          end if
     next
     file.Close()
else
     txt = " - error - "
end if
txt = txtaux
set fs = nothing
set file = nothing

Если это работает (не уверен, потому что у меня в настоящее время нет среды тестирования для ASP), тогда вы будете иметь все ваши CVS внутри строки txt var. Buuuuttt ... мы столкнулись только с кавычками, а не с запятыми ... Так что вам придется обходить их, возможно, применяя другой, если внутри, чтобы определить, находится ли запятая внутри кавычек, тогда его нужно изменить на ; Например, что-то, что принесет вам, как конечный результат, что-то вроде этого: 10 000, 25 000 и так далее.

Автор: statosdotcom Размещён: 19.07.2016 02:00

0 плюса

266 Репутация автора

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

Прочтите эту статью о том, как читать CSV-файлы с использованием ASP (с JScript): http://mindmeat.blogspot.dk/2014/05/reading-excel-files-in-classic-asp.html

Это требует, чтобы ACE-драйверы были установлены на сервере.

Автор: Jan Hansen Размещён: 21.07.2016 05:17
Вопросы из категории :
32x32