Из C++ в C#. Замена числа в файле
Формулировка задачи:
Уважаемые, есть ли возможность портировать этот код из С++ на C#?
Код предназначен заменять в .dll файле число 1134 на введенное.
Заранее спасибо за советы.
Сам файл для наглядности http://rgho.st/6Vz9kxlRf .
#include <fstream>
#include <iostream>
#include <regex>
#include <string>
int main ()
{
std::fstream fs("C:\client.dll", std::ios::in | std::ios::out | std::ios::binary);
if (!fs)
return 1;
std::cout << "Input your camera distance: ";
std::string to;
std::cin >> to;
std::string text((std::istreambuf_iterator<char>(fs)), std::istreambuf_iterator<char>());
fs.clear();
fs.seekp(0, std::ios::beg);
std::regex_replace(std::ostreambuf_iterator<char>(fs), text.begin(), text.end(), std::regex("1134"), to);
}Решение задачи: «Из C++ в C#. Замена числа в файле»
textual
Листинг программы
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
const string PATH = @"C:\client.dll";
const string find = "1134";
Console.Write("Input your camera distance: ");
string replaceBy = Console.ReadLine();
Encoding encoding = Encoding.Default;
string text;
try { text = File.ReadAllText(PATH, encoding); }
catch (FileNotFoundException) { return; }
text = text.Replace(find, replaceBy);
using (var fstream = new FileStream(PATH, FileMode.Open, FileAccess.Write))
{
byte[] buf = encoding.GetBytes(text);
fstream.Write(buf, 0, buf.Length);
}
}
}