maket online
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,7 @@
|
||||
// Copyright Epic Games, Inc. All Rights Reserved.
|
||||
|
||||
#include "manageTextFileBPLibrary.h"
|
||||
#include "Kismet/KismetStringLibrary.h"
|
||||
#include "manageTextFile.h"
|
||||
|
||||
UmanageTextFileBPLibrary::UmanageTextFileBPLibrary(const FObjectInitializer& ObjectInitializer)
|
||||
@@ -72,4 +73,36 @@ bool UmanageTextFileBPLibrary::readFile(FString Path, FString FileName,FString &
|
||||
FString fullpath = Path + "\\" + FileName;
|
||||
return FFileHelper::LoadFileToString(Str, *fullpath);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
bool UmanageTextFileBPLibrary::parseIniFile(FString Path, FString FileName, TMap<FString, FString>& Pairs) {
|
||||
FString outstr;
|
||||
readFile(Path, FileName, outstr);
|
||||
FJsonSerializableArray arr;
|
||||
outstr.ParseIntoArrayLines(arr);
|
||||
for (auto& a : arr) {
|
||||
a.TrimStartAndEndInline();
|
||||
if (a.StartsWith("#") || a.StartsWith(";")) continue;
|
||||
FString k;
|
||||
FString v;
|
||||
if (!a.Split(L"=", &k, &v)) continue;
|
||||
k.TrimStartAndEndInline();
|
||||
v.TrimStartAndEndInline();
|
||||
Pairs.Add(k, v);
|
||||
}
|
||||
return !Pairs.IsEmpty();
|
||||
}
|
||||
|
||||
FString UmanageTextFileBPLibrary::getValueFromIniFile(FString Path, FString FileName, FString Key, bool& exists, int& asInt, double& asFloat) {
|
||||
TMap<FString, FString> pairs;
|
||||
parseIniFile(Path, FileName, pairs);
|
||||
const auto out=pairs.Find(Key);
|
||||
if (!out) {
|
||||
exists = false;
|
||||
return FString();
|
||||
}
|
||||
asInt = UKismetStringLibrary::Conv_StringToInt(*out);
|
||||
asFloat = UKismetStringLibrary::Conv_StringToDouble(*out);
|
||||
exists = true;
|
||||
return *out;
|
||||
}
|
||||
@@ -40,4 +40,11 @@ class UmanageTextFileBPLibrary : public UBlueprintFunctionLibrary
|
||||
static bool DeleteFile(FString Path, FString FileName);
|
||||
UFUNCTION(BlueprintCallable, Category = "manageTextFile")
|
||||
static bool readFile(FString Path, FString FileName, FString & Str);
|
||||
|
||||
/*# or ; at line begin is comment. line-by-line key=value.*/
|
||||
UFUNCTION(BlueprintCallable, Category = "manageTextFile")
|
||||
static bool parseIniFile(FString Path, FString FileName, TMap<FString, FString>& Pairs);
|
||||
/*# or ; at line begin is comment. line-by-line key=value.*/
|
||||
UFUNCTION(BlueprintCallable, Category = "manageTextFile")
|
||||
static FString getValueFromIniFile(FString Path, FString FileName, FString Key, bool& exists, int& asInt, double& asFloat);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user