我需要在fsharp中编写一个程序,用另一个字符串 "replace" 替换输入文本文件中所有出现的字符串 "needle"。这个问题已经有了一个很好的解决方案,可以在这里找到:F# - fileReplace, overwriting words in txt, but when running it overwrites exisiting content in txt。
不幸的是,我的程序必须明确使用函数 System.IO.File.OpenText、ReadLine 和 WriteLine,而上述解决方案没有使用这些函数。
我无法想象如何以一种有效且不复杂的方式完成这个任务。问题在于,如果使用 System.IO.File.OpenText 打开输入文件,则无法同时读取和写入该文件。但我们需要写入才能替换 needle 参数的出现次数。那么怎么办呢?你需要创建另一个临时文件,将其作为只写打开,然后使用 system.IO.FILe.OpenText.readLine 的输入执行 WriteLine 吗?这似乎太复杂了。
如果有人需要具体的任务,请参考下面的内容:
不幸的是,我的程序必须明确使用函数 System.IO.File.OpenText、ReadLine 和 WriteLine,而上述解决方案没有使用这些函数。
我无法想象如何以一种有效且不复杂的方式完成这个任务。问题在于,如果使用 System.IO.File.OpenText 打开输入文件,则无法同时读取和写入该文件。但我们需要写入才能替换 needle 参数的出现次数。那么怎么办呢?你需要创建另一个临时文件,将其作为只写打开,然后使用 system.IO.FILe.OpenText.readLine 的输入执行 WriteLine 吗?这似乎太复杂了。
如果有人需要具体的任务,请参考下面的内容:
Make a program in F#
fileReplace : string -> needle : string -> replace: string -> unit
which replaces all occurrences of the needle argument with the replace argument in the file with name filename. The solution must as a minimum use the functions System.IO.File.OpenText, ReadLine and WriteLine to access the files.
A short test must be included and a short description of the solution with arguments for larger design choices taken to reach the given solution