作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现了一个我认为非常适合学习 F# 的快速项目。但是,出于某种原因,我就是无法全神贯注。经过几个小时的教程甚至一些电影后,我仍然只是......不明白。
所以我想开始使用企业管理器“生成脚本”对工作中的存储过程进行版本控制,并想清空脚本日期。我放弃了,用 C# 做了,但现在我真的很好奇,希望能得到一些见解。
我不是空手而归,这是我的 C# 代码:
string path = @"C:\Subversion\CompanyName\SQL\DBName";
string fileSpec = "*.sql";
string pattern = @"Script Date: \d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}";
string replace = "Script Date: ";
foreach (var file in Directory.EnumerateFiles(path, fileSpec))
{
string content = File.ReadAllText(file);
content = Regex.Replace(content, pattern, replace);
File.WriteAllText(file, content, Encoding.Unicode);
}
我猜 F# 中有一些看起来很酷的 2-3 行解决方案...我很乐意看到它。
感谢提示!我更新了它以匹配下面正在做的事情,以使视觉比较可能更具启发性。下面还有很棒的评论。
最佳答案
let path = @"C:\Subversion\CompanyName\SQL\DBName"
let fileSpec = "*.sql"
let pattern = @"Script Date: \d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}"
let replace = "Script Date: "
Directory.EnumerateFiles (path, fileSpec)
|> Seq.iter (fun file ->
let content = Regex.Replace (File.ReadAllText file, pattern, replace)
File.WriteAllText (file, content, Encoding.Unicode))
请注意,您的 C# 代码是(编辑:是)也比必要的冗长得多。
关于c# - F# 伤了我的脑子……谁能帮忙把 C# 翻译成 F#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7907635/
我是一名优秀的程序员,十分优秀!