From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。
---
HotelPms.SourceFactory/FileEdit/Core.cs | 70 +++++++++++++++++++++++++++++++++++
1 files changed, 70 insertions(+), 0 deletions(-)
diff --git a/HotelPms.SourceFactory/FileEdit/Core.cs b/HotelPms.SourceFactory/FileEdit/Core.cs
new file mode 100644
index 0000000..e26a07d
--- /dev/null
+++ b/HotelPms.SourceFactory/FileEdit/Core.cs
@@ -0,0 +1,70 @@
+using NPOI.SS.Formula.Functions;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HotelPms.SourceFactory.FileEdit
+{
+ public class Core : IDisposable
+ {
+ private EditData curEditData = null;
+ private List<string> fileContent = new List<string>();
+
+ public Core()
+ {
+
+ }
+
+ public void Dispose()
+ {
+ curEditData = null;
+ fileContent.Clear();
+ fileContent = null;
+ }
+
+ public void Execute(EditData data)
+ {
+ curEditData = data;
+ if(curEditData.Data.Count == 0) { return; }
+
+ //ファイルをメモリー中の読む
+ string line;
+ fileContent.Clear();
+ using (StreamReader sr = new StreamReader(curEditData.FilePath, curEditData.Encoding))
+ {
+ while ((line = sr.ReadLine()) != null)
+ {
+ fileContent.Add(line);
+
+ //検索
+ foreach(Item item in curEditData.Data)
+ {
+ if (item.HitIndex2 == -1 && line.Trim().StartsWith(item.Key1)) { item.HitIndex1 = fileContent.Count - 1; }
+ if (item.HitIndex1 != -1 && item.Key2.Length > 0 && line.Trim().StartsWith(item.Key2)) { item.HitIndex2 = fileContent.Count - 1; }
+ }
+ }
+ }
+
+ using (StreamWriter sw = new StreamWriter(curEditData.FilePath, false, curEditData.Encoding))
+ {
+ int i = 0;
+ foreach (string content in fileContent)
+ {
+ sw.WriteLine(content);
+
+ foreach (Item item in curEditData.Data)
+ {
+ if (item.HitIndex1 == -1) { continue; }
+ int index = item.HitIndex2 == -1 ? item.HitIndex1 : item.HitIndex2;
+ if (index != i) { continue; }
+ foreach(string addLine in item.Data) { sw.WriteLine(addLine); }
+ }
+ i++;
+ }
+ }
+ }
+ }
+}
--
Gitblit v1.10.0