* Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
#include "CsvTableSource.h"
size_t CsvTableSource::countCsvRows()
{
std::ifstream file(filepath, std::ios::binary);
if (!file) {
LOG("Error opening file: " + filepath);
return 0;
}
size_t line_count = 0;
char buffer[8192];
while (file.read(buffer, sizeof(buffer))) {
line_count += static_cast<size_t>(std::count(buffer, buffer + file.gcount(), '\n'));
}
line_count += static_cast<size_t>(std::count(buffer, buffer + file.gcount(), '\n'));
return line_count;
}