Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.32. Вспомогательный объект для работы с форматом CSV
Описываются функции и команды вспомогательного объекта RDS, предназначенного для создания и разбора текста в формате CSV, то есть набора текстовых значений, разделенных запятыми.
А.5.32.1. rdsCSVCreate – создать объект для работы с текстом в формате CSV
Функция rdsCSVCreate создает вспомогательный объект RDS, с помощью которого можно работать с текстом формата CSV (comma separated values), то есть с текстом, каждая строка которого содержит набор значений, отделенных друг от друга запятой или другим символом-разделителем.
RDS_HOBJECT RDSCALL rdsCSVCreate(void);
Тип указателя на эту функцию
RDS_HoV
Возвращаемое значение
Уникальный идентификатор созданного объекта (RDS_HOBJECT).
Примечания
Эта функция создает вспомогательный объект, с помощью которого можно как разбирать текст в формате CSV, так и формировать его. Такие тексты удобны для простого хранения различных матриц и списков. Элементами текста, с которыми работает объект, являются строки, поэтому если нужно работать с целыми или вещественными числами, преобразовывать строки в числа и числа в строки нужно вручную. Элементы разделяются запятыми. Если элемент текста содержит пробелы, он должен быть заключен в двойные кавычки, если элемент содержит двойные кавычки, символ двойной кавычки в нем удваивается. Например, текст
Строка1,"alpha, beta","строка""с""кавычкой", "Строка 2" 10.0, 20.0,30.0 1,,"2 3"
будет состоять из следующих элементов:
| Столбец 0 | Столбец 1 | Столбец 2 | Столбец 3 | |
|---|---|---|---|---|
| Строка 0 | Строка1 | alpha, beta | строка"с"кавычкой | Строка 2 |
| Строка 1 | 10.0 | 20.0 | 30.0 | |
| Строка 2 | 1 | 2 3 |
При желании, командой RDS_CSV_DELIMITERCHAR вместо запятой можно установить другой символ-разделитель, а командой RDS_CSV_QUOTECHAR заменить на другой символ двойную кавычку, используемую для выделения строк с пробелами.
При разборе текста можно загрузить в объект весь текст из какого-либо файла (команда RDS_CSV_LOADFROMFILE), считывать его из файла построчно (команда RDS_CSV_STRFROMFILE) или передать в объект уже загруженный в память текст (команда RDS_CSV_TEXT). При этом функцией rdsCSVGetItem можно получить элемент текста, находящийся в заданной строке и заданном столбце. При формировании текста можно записывать элементы в заданную строку и столбец текста функцией rdsCSVSetItem, а уже сформированный текст записывать в файл целиком (команда RDS_CSV_SAVETOFILE) или построчно (команда RDS_CSV_STRTOFILE), а также получать его динамически сформированную копию (команда RDS_CSV_TEXT).
Созданный вспомогательный объект будет существовать до тех пор, пока схема не будет выгружена из памяти, или пока он не будет удален вызовом функции rdsDeleteObject.
Пример
Пример использования функции rdsCSVCreate приведен в §2.16.2 руководства программиста.
См. также