C# добавить текст в место certin в файле
хорошо, я создал код для поиска в файле, но я хочу добавить текст в функцию в файле сценария игры, это код, который я сделал.
public void insidemain() { // this is for all functions inside of main and there are a few so we start here string[] lines = null; try { lines = File.ReadAllLines(elfenliedprogsettings.Read("Mod") + @"\scripts\zm\" + elfenliedprogsettings.Read("ModName") + ".csc"); } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "ERROR adding values to mapname.csc ERROR CODE 002"); } if (lines != null) { using (StreamReader elfenlied = new StreamReader((elfenliedprogsettings.Read("Mod") + @"\scripts\zm\" + elfenliedprogsettings.Read("ModName") + ".csc"))) { string elfenliedtopfan5_program = elfenlied.ReadToEnd(); if (elfenliedtopfan5_program.Contains("#precache( \"client_fx\", SNOW_FX );")) { //MessageBox.Show("SCAR-H ALREADY ADDED."); _MessageResult.Instance.Append("Already Added : devine calls to : " + elfenliedprogsettings.Read("Mod") + @"\scripts\zm\" + elfenliedprogsettings.Read("ModName") + ".csc" + Environment.NewLine); } if (!elfenliedtopfan5_program.Contains("#precache( \"client_fx\", SNOW_FX );")) { elfenlied.Dispose(); if (File.Exists(elfenliedprogsettings.Read("Mod") + @"\scripts\zm\" + elfenliedprogsettings.Read("ModName") + ".csc")) { { string s = "#define SNOW_FX \"dlc0/factory/fx_snow_player_os_factory\"\r\n" + "#precache( \"client_fx\", SNOW_FX );\r\n"; string file = elfenliedprogsettings.Read("Mod") + @"\scripts\zm\" + elfenliedprogsettings.Read("ModName") + ".csc"; List<string> elf = new List<string>(System.IO.File.ReadAllLines(file)); int index = elf.FindIndex(item => item.Contains("function main()" + "{")); if (index != -1) { elf.Insert(index + 1, s);//"" } System.IO.File.WriteAllLines(file, elf); //richTextBoxEx1.LoadFile(Properties.Settings.Default.mods + "//mod.csv", RichTextBoxStreamType.PlainText); //MessageBox.Show("Added: " + s + " Mods.csv"); _MessageResult.Instance.Append("\r\nAdded: " + s + elfenliedprogsettings.Read("Mod") + @"\scripts\zm\" + elfenliedprogsettings.Read("ModName") + ".csc" + Environment.NewLine); } } } } } }
но та часть с которой у меня возникли проблемы я не могу заставить текст войти в скобки мне нужно чтобы текст был помещен внутрь основной функции
но я не знаю, как это сделать.
файл
#using scripts\codescripts\struct; #using scripts\shared\audio_shared; #using scripts\shared\callbacks_shared; #using scripts\shared\clientfield_shared; #using scripts\shared\exploder_shared; #using scripts\shared\scene_shared; #using scripts\shared\util_shared; #insert scripts\shared\shared.gsh; #insert scripts\shared\version.gsh; #using scripts\zm\_load; #using scripts\zm\_zm_weapons; //Perks #using scripts\zm\_zm_pack_a_punch; #using scripts\zm\_zm_perk_additionalprimaryweapon; #using scripts\zm\_zm_perk_doubletap2; #using scripts\zm\_zm_perk_deadshot; #using scripts\zm\_zm_perk_juggernaut; #using scripts\zm\_zm_perk_quick_revive; #using scripts\zm\_zm_perk_sleight_of_hand; #using scripts\zm\_zm_perk_staminup; //Powerups #using scripts\zm\_zm_powerup_double_points; #using scripts\zm\_zm_powerup_carpenter; #using scripts\zm\_zm_powerup_fire_sale; #using scripts\zm\_zm_powerup_free_perk; #using scripts\zm\_zm_powerup_full_ammo; #using scripts\zm\_zm_powerup_insta_kill; #using scripts\zm\_zm_powerup_nuke; //Traps #using scripts\zm\_zm_trap_electric; #using scripts\zm\zm_usermap; function main() { zm_usermap::main(); include_weapons(); util::waitforclient( 0 ); } function include_weapons() { zm_weapons::load_weapon_spec_from_table("gamedata/weapons/zm/zm_levelcommon_weapons.csv", 1); }
кроме того, я не могу просто сделать}, так как пользователь будет иметь функции выше основной функции, поэтому вкратце мне нужно найти основную функцию, Найти ее, а затем найти начальную скобку } и добавить туда текст
заранее благодарю вас elfenliedtopfan5
Что я уже пробовал:
сделал много поисков в google по этому вопросу, а также сделал то, что описано выше.