ReadDataFromCSV.h
UCLASS() class MYPROJECT_API UReadDataFromCSV : public UBlueprintFunctionLibrary { GENERATED_BODY() public: UFUNCTION(BlueprintCallable, Category = "CSV") static TArray<FString> GetCSVDataToString(FString csvPath); };
ReadDataFromCSV.cpp
#include "ReadDataFromCSV.h" //CSV解析器 #include "Runtime/Core/Public/Serialization/Csv/CsvParser.h" //文件路径检索助手 #include "Runtime/Core/Public/Misc/Paths.h" TArray<FString> UReadDataFromCSV::GetCSVDataToString(FString csvPath) { //文件路径+文件名 FString csvFile = FPaths::ProjectContentDir() + csvPath; //返回值 TArray<FString> csvContent; //判断路径下的文件是否存在 if (FPaths::FileExists(csvFile)) { FString FileContent; //把csv文件内容读取到字符串中 FFileHelper::LoadFileToString(FileContent, *csvFile); //把字符串进行解析 FCsvParser* csvfiles = new FCsvParser(FileContent); //解析器GetRows()方法会返回所有的单元格里的C风格的字符串 /* *( [TCHAR*] [TCHAR*] [TCHAR*] )——> TArray<const TCHAR*> * [TCHAR*] [TCHAR*] [TCHAR*] )——> TArray<TArray<const TCHAR*>> * [TCHAR*] [TCHAR*] [TCHAR*] / */ FCsvParser::FRows content = csvfiles->GetRows(); //TArray<TArray<const TCHAR*>> content = csvfiles->GetRows(); /* 遍历数组 * int[] arr = new int[] { 1, 2, 3 } * for (int i : arr) { * ... * } */ //从第一行遍历到最后一行 for (TArray<const TCHAR*>& ite : content) { //在当前行中,从第一个字符指针(单元格里的字符串)遍历到最后一个字符指针(单元格里的字符串) for (const TCHAR*& chr : ite) { csvContent.Add(chr); } } return csvContent; } else return csvContent; }
测试数据
TestData.csv
关卡蓝图
运行结果
原文地址:https://www.cnblogs.com/map1e/p/10793702.html
时间: 2024-10-09 11:55:07