在b.txt文件C#中从a.txt文件查找字母

时间:2019-03-15 04:29:45

标签: c# asp.net asp.net-mvc web-services asmx

目前,我正在上传2个txt文件。在文件“ A”中,我有一个字母列表,在文件“ B”中,我有几个单词,我正在阅读这两个文件,并将它们添加到列表中。目的是根据“ A”文件的字母来查找是否可以从“ B”文件中形成单词。示例:

“ A”文件的内容: Ë 乙 ÿ Ø P d [R 乙 A

“ B”文件的内容: 波贝达 钴

在这种情况下,在POBEDA中找到了单词

我正在使用网络服务来执行该过程

这是Web服务:

public class WebService : System.Web.Services.WebService
    {

        [WebMethod]
        public string Leerdata()
        {


            var path = Directory.EnumerateFiles(@"C:\Users\thoma\source\repos\NewShoreApp\NewShoreApp\Data\", "*.txt");

            List<string> list = path.ToList();
            Parallel.ForEach(path, current =>
            {
                string[] lines = File.ReadAllLines(current);

                list.AddRange(lines.ToList());
            });


            return String.Join(",", list);


            }

    }

这是控制器:

namespace NewShoreApp.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {

            return View();
        }


        [HttpPost]
        public ActionResult Index(HttpPostedFileBase[] files)
        {

            if (ModelState.IsValid)
            {
                try
                {
                    foreach (HttpPostedFileBase file in files)
                    {
                        if (file != null)
                        {
                            var ServerPath = Path.Combine(Server.MapPath("~/Data"), Path.GetFileName(file.FileName));

                            file.SaveAs(ServerPath);
                        }
                    }                    
                    ViewBag.FileStatus = "File uploaded successfully.";
                }

                catch (Exception)   
                {

                    ViewBag.FileStatus = "Error while file uploading.";
                } 

            }
            return View("Index");
        }


    }
}

这是模型:

namespace NewShoreApp.Models
{
    public class Data
    {
        // 
        [DataType(DataType.Upload)]
        [Display(Name = "Upload File")]
        [Required(ErrorMessage = "Please choose file to upload.")]
        public HttpPostedFileBase[] files { get; set; }

    }
}

1 个答案:

答案 0 :(得分:2)

只需一个简单的算法即可解决您的问题。

(您可以改进此算法,该算法仅供参考)

文件“ A”和“ B”之间的匹配过程应如下所示:

  1. 从文件“ B”中读取单词
  2. 将该单词拆分为字符数组
  3. 将字符数组的每个元素与文件“ A”的所有字符进行比较
    • 如果在文件“ A”中找到了所有字符,并且 在字符数组中,没有其他要匹配的字符(在“ A”文件中找不到) 那么它将被视为“未找到”
    • 如果在“ A”文件和字符数组中找到所有字符, 没有其他匹配的字符,它将被视为“找到”
  4. 从文件“ B”中获取下一个单词
    • 如果文件“ B”中有下一个单词,则重复步骤2和3
    • 如果文件“ B”中没有下一个单词,则您已完成 文件“ A”和“ B”之间的匹配过程。因此,终止此过程。