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