Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 01.08.2011
Сообщений: 7

Написание программного кода пользователем

07.09.2011, 17:58. Показов 1165. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Говоря общо, мне нужно чтобы код, написанный для программы в указанном файле после компиляции, работал в уже полностью скомпилированной программе (я делаю шахматы, где каждый оппонент пишет ИИ своего собственного Гаспарова). Возможно ли это? Если нет, то можно ли переключить C# в интерпретируемый язык?

P.S. Не ругайте, если я в чем-то туплю. Я школьнег.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.09.2011, 17:58
Ответы с готовыми решениями:

Описание программного кода
Ребята, выручайте, необходимо описать эту программу(желательно каждую в ней строку) using System; using System.Collections.Generic; ...

Удобные сокращения программного кода
Делаем код удобнее, красивее и короче:) Сложение: переменная += значение (i = 1 i += 1 i будет равно 2) ...

Исправить оформление программного кода
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace EasyCSharp { public class...

2
 Аватар для Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
07.09.2011, 18:20
Лучший ответ Сообщение было отмечено GilaZews как решение

Решение

C#
1
2
3
4
5
6
7
8
CSharpCodeProvider codeProvider = new CSharpCodeProvider(new Dictionary<String, String> { { "CompilerVersion", "v3.5" } });
                            CompilerParameters cp = new CompilerParameters();
                            cp.ReferencedAssemblies.Add("System.Data.dll");
                            cp.ReferencedAssemblies.Add("System.Core.dll");
                            cp.ReferencedAssemblies.Add("System.Xml.dll");
                            cp.ReferencedAssemblies.Add("System.Xml.Linq.dll");
                            cp.OutputAssembly = "my.dll";
                            CompilerResults results = codeProvider.CompileAssemblyFromSource(cp, "code");
1
Заблокирован
07.09.2011, 18:22
Если я правильно понял, то тебе надо на компилировать на лету. Вот пример. Только надо изменить немного. Строку string str_compi загони в файл а потом прочитай и скомпилируй её.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    using Microsoft.CSharp;
    using System.IO;
    using System.CodeDom.Compiler;
    using System.Reflection;
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
string str_compi= @"using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Threading;
 
namespace test
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
 
    partial class Form1
    {
        private System.ComponentModel.IContainer components = null;
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
 
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Text = ""Form1"";
        }
 
    }
}";
        private void button1_Click(object sender, EventArgs e)
        {         
             
            
            // Настройки компиляции 
            Dictionary<string, string> providerOptions = new Dictionary<string, string> 
                        { 
                            {"CompilerVersion", "v3.5"} 
                        };
 
            CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions);
 
            String path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "test.exe");
 
            CompilerParameters compilerParams = new CompilerParameters
            {
                OutputAssembly = path,
                GenerateExecutable = true
            };
 
            compilerParams.ReferencedAssemblies.Add("System.Windows.Forms.dll");
            compilerParams.ReferencedAssemblies.Add("System.dll");
            compilerParams.CompilerOptions = "/target:winexe";
            //compilerParams.MainClass = "TestProgram.Program";
 
            // Компиляция 
            string str = textBox1.Text;
            CompilerResults results = provider.CompileAssemblyFromSource(compilerParams, str_compi);
 
            // Выводим информацию об ошибках 
            MessageBox.Show("Number of Errors: " + results.Errors.Count);
 
            foreach (CompilerError err in results.Errors)
            {
                MessageBox.Show("ERROR " + err.ErrorText);
            }
        }
 
        
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.09.2011, 18:22
Помогаю со студенческими работами здесь

Динамическое выполнение программного кода
Как создать mini Visual studio с поддержкой языка vb net (на VB.NET) Типа такой:

Нейронная сеть анализа программного кода
Здравствуйте, друзья! Существует необходимость в создании нейронной сети, которая бы анализировала написанный программный код. Например,...

Генерирование программного кода и компиляция без VS
Ну например выбираешь флажек чек бокса который пишет код например msgbox(&quot;1&quot;) и записывает в файл.При нажатии на кнопку этот файл...

Отслеживание в каком месте программного кода происходит изменение значения переменной
Привет! Мне необходимо отследить в каком месте программного кода происходит изменение значения переменной. В своей программе я...

Написание программного кода упругого столкновения
Программа для Delphi. Упругое столкновение двух шаров Добавлено через 22 часа 26 минут Упругое столкновение двух шаров.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru