Вставка пустых строк между записями и вывод в CSV - PullRequest
1 голос
/ 25 августа 2011

Мне нужно изменить строки в двух файлах CSV. Я использую Windows XP.

Имена файлов: pi_jobs.csv и pi_offices.csv .

Мне требуется два пробела между каждой записью, а затем две пустые строки после последней записи.

Файлы генерируются приложением на основе Access, и я смог создать пустые строки в выводе с помощью оператора SQL (в основном, последнее поле в запросе объединяет два набора Chr (10) и Chr (13) символов, что дает мне два перевода строки и два возврата каретки).

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

Я привел пример ниже. Обратите внимание на разрыв между первой и второй записью. В конце первой записи есть запятая и кавычка, а перед началом второй записи стоит закрывающая кавычка:

«Аккредитованная программа медицинской помощи, где можно получить сертификацию AAMA или AMT; Требуется диплом средней школы или GED; Минимум три года опыта работы в медицинском или связанном с ним офисе; Знание флеботомии и инъекций. Желаемый: Ассоциированные степени. ","


"
"TBP20113105-82792", "chicago-edgewater", "9999999", "Помощник TBP"

Я был очень осторожен с форматированием моей страницы - именно так выглядит межстрочный интервал. В этом интервале три пробела. Однако он должен выглядеть так:

«Аккредитованная программа медицинской помощи, где можно получить сертификат AAMA или AMT; Требуется диплом средней школы или GED; Минимум три года опыта работы в медицинском или связанном с ним офисе; Знание флеботомии и инъекций. Желаемый: Associates Degree. "


"TBP20113105-82792", "chicago-edgewater", "9999999", "Помощник TBP"

1 Ответ

1 голос
/ 25 августа 2011

Вот чистое решение Access.

Шаг 1: Добавить ссылку на библиотеку Microsoft Scripting Runtime в вашу базу данных

enter image description here

Шаг 2: Создайте функцию, которая будет открывать таблицу / запрос и построчно читать записи и выводить их в файл .csv

Function OutputToCsv()
Dim fs As FileSystemObject
Dim ts As TextStream
Dim rs As Recordset

On Error GoTo lberr

'use this if you query a single table
Set rs = CurrentDb.OpenRecordset("Select Column1, Column2, Column3 From NewTable")

'use this if your query DOES NOT have any parameters
'Set rs = CurrentDb.OpenRecordset("Select Column1, Column2, Column3 From NewQuery")

'use this if you use query WITH parameter(s)
'Dim qdf As QueryDef
'Set qdf = CurrentDb.QueryDefs("NewQuery")
'qdf.Parameters("Parameter1") = "" 'set the value for the parameter(s)
'Set rs = qdf.OpenRecordset

If (rs.RecordCount = 0) Then Exit Function

Set fs = New FileSystemObject
Set ts = fs.CreateTextFile("C:\NewFile.csv", True, False) 'this will overwrite the file each time

rs.MoveFirst

Do While Not rs.EOF
    'Chr(34) is a quotation mark "
    ts.WriteLine (Chr(34) & rs("Column1") & Chr(34)) 'format your record output
    'ts.WriteLine (Chr(34) & rs("Column1") & Chr(34) & "," & Chr(34) & rs("Column2") & Chr(34)) 'in case you need to output more than one column
    ts.WriteBlankLines (2) 'Add as many empty lines as you need
    rs.MoveNext
Loop

ts.Close

MsgBox "Success!"

Exit Function
lberr:
    MsgBox Err.Description
End Function

И вот как должен выглядеть ваш выходной файл:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...