Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.32. Вспомогательный объект для работы с форматом CSV
А.5.32.19. Команда RDS_CSV_STRTOFILE – записать строку в файл
Команда RDS_CSV_STRTOFILE записывает в файл, открытый для построчной записи командой RDS_CSV_OPENFILEWRITE, очередную строку.
Вызов команды
int iStrNum= … // Номер строки в объекте BOOL bOk=rdsCommandObjectEx(Csv,RDS_CSV_STRTOFILE,iStrNum,NULL);
Параметры и результат
- Csv (RDS_HOBJECT)
- Идентификатор вспомогательного объекта для работы с CSV, ранее созданного функцией rdsCSVCreate.
- iStrNum (int)
- Номер строки в памяти объекта, которая будет записана в файл. Строки нумеруются начиная с нуля.
- bOk (BOOL)
- Результат записи: TRUE – строка записана, FALSE – произошла ошибка (ошибка записи или в объекте нет строки iStrNum).
Примечания
Эта команда записывает в файл, ранее открытый командой RDS_CSV_OPENFILEWRITE, строку с номером iStrNum из внутренней памяти объекта Csv. Чтобы узнать, удалось ли записать строку в файл, следует проверить результат возврата команды или выполнить команду RDS_CSV_FILEERROR.
Строки в файл пишутся последовательно, одна за другой. Последовательность строк в файле не обязательно будет совпадать с последовательностью строк в памяти объекта, она будет зависеть от параметров iStrNum, с которыми будут вызываться команды RDS_CSV_STRTOFILE. Например, для записи в файл строк в порядке, обратном их следованию в памяти объекта, можно использовать следующий цикл:
RDS_HOBJECT Csv=rdsCSVCreate(); … формирование текста в объекте … // Число строк в объекте int LineCount=rdsGetObjectInt(Csv,RDS_CSV_LINECOUNT,0); // Открытие файла rdsSetObjectStrA(Csv,RDS_CSV_OPENFILEWRITE,0,"file.csv"); for(int i=LineCount-1;i>=0;i--) rdsCommandObjectEx(Csv,RDS_CSV_STRTOFILE,i,NULL); // Закрытие файла rdsCommandObject(Csv,RDS_CSV_CLOSEFILE); // Удаление объекта rdsDeleteObject(Csv);
Можно также, например, все время работать с нулевой строкой объекта: устанавливать в ней элементы вызовом rdsCSVSetItem, а затем сбрасывать ее в файл.
См. также
rdsCSVCreate, rdsCommandObjectEx, RDS_CSV_LINECOUNT, RDS_CSV_OPENFILEWRITE, RDS_CSV_CLOSEFILE, RDS_CSV_FILEERROR, RDS_CSV_STRFROMFILE, rdsCSVSetItem.