Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.32. Вспомогательный объект для работы с форматом CSV
А.5.32.9. Команда RDS_CSV_LINE – одна строка текста
Команда RDS_CSV_LINE устанавливает или возвращает строку текста с указанным номером в указанном объекте (в этой строке содержатся элементы текста, разделенные запятыми).
Вызов команды для установки
int iStrNum= … // Номер строки RDSCSTR sStrText= … // Текст строки (UTF8) rdsSetObjectStrA(Csv,RDS_CSV_LINE,iStrNum,sStrText);
или
int iStrNum= … // Номер строки RDSWCSTR sStrText= … // Текст строки (UTF16) rdsSetObjectStrW(Csv,RDS_CSV_LINE,iStrNum,sStrText);
или (через функцию-псевдоним)
int iStrNum= … // Номер строки RDSXCSTR sStrText= … // Текст строки (кодировка по умолчанию) rdsSetObjectStr(Csv,RDS_CSV_LINE,iStrNum,sStrText);
Вызов команды для чтения
int iStrNum= … // Номер строки RDSCSTR sStrText=rdsGetObjectStrA(Csv,RDS_CSV_LINE,iStrNum); // UTF8
или
int iStrNum= … // Номер строки RDSWCSTR sStrText=rdsGetObjectStrW(Csv,RDS_CSV_LINE,iStrNum); // UTF16
или (через функцию-псевдоним)
int iStrNum= … // Номер строки RDSXCSTR sStrText=rdsGetObjectStr(Csv,RDS_CSV_LINE,iStrNum); // Кодировка по умолчанию
Параметры и результат
- Csv (RDS_HOBJECT)
- Идентификатор вспомогательного объекта для работы с CSV, ранее созданного функцией rdsCSVCreate.
- iStrNum (int)
- Номер строки текста, которую нужно установить или получить. Строки нумеруются начиная с нуля.
- sStrText (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на текст строки (набор элементов, разделенных запятыми). При получении текста строки вызовом rdsGetObjectStr этот текст формируется динамически, поэтому после использования он обязательно должен быть освобожден вызовом rdsFree. Если в строке не содержится ни одного элемента, функция вернет NULL.
Примечания
Эта команда позволяет работать с текстом в формате CSV построчно, не разбивая каждую строку на отдельные элементы.
Пример
Следует помнить, что, поскольку объект хранит текст уже разобранным, для того, чтобы вернуть строку с заданным номером, ему приходится заново собирать ее из отдельных значений. По этой причине при выполнении команды RDS_CSV_LINE для получения строки объект формирует ее в динамической памяти, и обязанность освобождения этой памяти вызовом rdsFree лежит на вызвавшей программе.
См. также
rdsCSVCreate, rdsSetObjectStr, rdsGetObjectStr, rdsFree, RDS_CSV_TEXT.