Копипаст

Копипаст | Учим C# Windows Forms зная Basic

Учим C# Windows Forms зная Basic

Цель данной темы: разместить в интернет программы
по каким возможно быстро выучить C# зная basic

Никому никогда ничего не рекомендую и всегда пишу только про себя

Предыдущая тема: Учим C# зная basic
Программы созданы мной на основе моей главной программы
где запрограммирован мой алгоритм в нескольких вариантах
и теперь программирую на C# сразу без перевода из basic

? Почему C# & basic?
Потому что компилируемые и есть онлайн компиляторы
и компилятор C# включен в Windows 7 Framework

Программы проверены: работают и каждый может проверить
и лично я компилирую и стартую через простейший bat

программа решающая квадратное уравнение

Учим C# Windows Forms зная Basic
результаты вычисляются при каждом нажатии
и результаты округляются до 2-х знаков после запятой
и нажав спец кнопку данные данные сохраняются на диск
и возможно сохранять настроенную конфигурацию
//winquall.cs
using System;
using System.Windows.Forms;
using System.IO;

class winQUAll : Form
{
winQUAll()
{
Text= "winQUAll Например A=6 B=7 C=2";
BackColor = System.Drawing.Color.Green;
ForeColor = System.Drawing.Color.White;
ResizeRedraw = true;
Width = 400;
Height = 250;
{
var buttons = new Button();
buttons.Text= "SAVE";
buttons.Dock = DockStyle.Top;
    var zc = -7;
    var labelc = new Label();
    var buttonc = new Button();
    buttonc.Text= "C+3";
    buttonc.Dock = DockStyle.Bottom;
var zb = 12;
var labelb = new Label();
var buttonb = new Button();
buttonb.Text= "B-1";
buttonb.Dock = DockStyle.Bottom;
    var za = 2;
    var labela = new Label();
    var buttona = new Button();
    buttona.Text= "A+1";
    buttona.Dock = DockStyle.Bottom;
var labelx = new Label();
    var d = (zb * zb - 4 * za * zc);
    double x1 = (-zb + Math.Sqrt(d)) / (2 * za);
    double x2 = (-zb - Math.Sqrt(d)) / (2 * za);
    var labeld = new Label();
labeld.Text= "d= " + d +"   X1= " + x1 + "   X2= " + x2 + "  ";
labeld.Dock = DockStyle.Top;
x1 = (Math.Truncate(x1 * 100))/100;
x2 = (Math.Truncate(x2 * 100))/100;
    //labeld.Location = new System.Drawing.Point(80, 15);
labelx.Text= "X1=" + x1 + " X2=" + x2 + "  ";
labelx.Location = new System.Drawing.Point(125, 125);
Controls.Add(labeld);
Controls.Add(labelx);
    labelc.Text= "C=" + zc + ".....";
    labelc.Location = new System.Drawing.Point(20, 100);
Controls.Add(labelc);
buttonc.Click += delegate
    {
    zc = zc+3;
    d = (zb * zb - 4 * za * zc);
    x1 = (-zb + Math.Sqrt(d)) / (2 * za);
    x2 = (-zb - Math.Sqrt(d)) / (2 * za);
labeld.Text= "d= " + d +"   X1= " + x1 + "   X2= " + x2 + "  ";
labeld.Dock = DockStyle.Top;
x1 = (Math.Truncate(x1 * 100))/100;
x2 = (Math.Truncate(x2 * 100))/100;
    //labeld.Location = new System.Drawing.Point(80, 15);
labelx.Text= "X1=" + x1 + " X2=" + x2 + "  ";
labelx.Location = new System.Drawing.Point(125, 125);
labelc.Text= "C=" + zc + "  ...";
labelc.Location = new System.Drawing.Point(20, 100);
    };
Controls.Add(buttonc);
Controls.Add(labeld);
Controls.Add(labelx);
    labelb.Text= "B=" + zb + ".....";
    labelb.Location = new System.Drawing.Point(50, 80);
Controls.Add(labelb);
buttonb.Click += delegate
    {
    zb--;
    d = (zb * zb - 4 * za * zc);
    x1 = (-zb + Math.Sqrt(d)) / (2 * za);
    x2 = (-zb - Math.Sqrt(d)) / (2 * za);
labeld.Text= "d= " + d +"   X1= " + x1 + "   X2= " + x2 + "  ";
labeld.Dock = DockStyle.Top;
x1 = (Math.Truncate(x1 * 100))/100;
x2 = (Math.Truncate(x2 * 100))/100;
    //labeld.Location = new System.Drawing.Point(80, 15);
labelx.Text= "X1=" + x1 + " X2=" + x2 + "  ";
labelx.Location = new System.Drawing.Point(125, 125);
labelb.Text= "B=" + zb + "  ...";
labelb.Location = new System.Drawing.Point(50, 80);
    };
Controls.Add(buttonb);
Controls.Add(labeld);
Controls.Add(labelx);
    labela.Text= "A=" + za + ".....";
    labela.Location = new System.Drawing.Point(80, 60);
Controls.Add(labela);
buttona.Click += delegate
    {
    za++;
    d = (zb * zb - 4 * za * zc);
    x1 = (-zb + Math.Sqrt(d)) / (2 * za);
    x2 = (-zb - Math.Sqrt(d)) / (2 * za);
labeld.Text= "d= " + d +"   X1= " + x1 + "   X2= " + x2 + "  ";
labeld.Dock = DockStyle.Top;
x1 = (Math.Truncate(x1 * 100))/100;
x2 = (Math.Truncate(x2 * 100))/100;
    //labeld.Location = new System.Drawing.Point(80, 15);
labelx.Text= "X1=" + x1 + " X2=" + x2 + "  ";
labelx.Location = new System.Drawing.Point(125, 125);
labela.Text= "A=" + za + "  ...";
labela.Location = new System.Drawing.Point(80, 60);
    };
Controls.Add(buttons);
buttons.Click += delegate
    {
var outFile = new StreamWriter("dan.txt");
outFile.WriteLine(za);
outFile.WriteLine(zb);
outFile.WriteLine(zc);
outFile.WriteLine(d);
outFile.WriteLine(x1);
outFile.WriteLine(x2);
outFile.Close();
    };
Controls.Add(buttona);
Controls.Add(labeld);
Controls.Add(labelx);
    };
}
    static void Main()
    {
Application.Run(new winQUAll());
    }
}



1cs=1exe

и далее испытываю движки и окна внутри окна 

квадратное уравнение и ввод значений в поля
с предварительно заполненными полями
возможно без нового окна для сообщения
исследую как использовать данные при нажатии кнопок

Учим C# Windows Forms зная Basic
//poleZAP.cs
using System;
using System.Windows.Forms;
namespace poleZAP
{
    public class Program
    {
    static void Main()
    {
Application.Run(new poleZAP());
    }
    }
    class poleZAP : Form
    {
    TextBox textBoxA;
    TextBox textBoxB;
    TextBox textBoxC;
    Button buttonD;
public poleZAP()
    {                       
    textBoxA=new TextBox();
        textBoxA.Text = "6";
    textBoxB=new TextBox();
        textBoxB.Text = "7";
    textBoxC=new TextBox();
        textBoxC.Text = "2";
textBoxA.Location = new System.Drawing.Point(150, 50);
textBoxB.Location = new System.Drawing.Point(100, 100);
textBoxC.Location = new System.Drawing.Point(50, 150);
    this.Controls.Add(textBoxA);
    this.Controls.Add(textBoxB);
    this.Controls.Add(textBoxC);

var labelq = new Label();
labelq.Text = "Input A= 6 & B= 7 & C= 2";
labelq.Dock = DockStyle.Top;
Controls.Add(labelq);
    var labelA = new Label();
    labelA.Text = "A= ";
    labelA.Location = new System.Drawing.Point(130, 52);
    Controls.Add(labelA);
var labelB = new Label();
labelB.Text = "B= ";
labelB.Location = new System.Drawing.Point(80, 102);
Controls.Add(labelB);
    var labelC = new Label();
    labelC.Text = "C= ";
    labelC.Location = new System.Drawing.Point(30, 152);
    Controls.Add(labelC);
buttonD = new Button();   
    buttonD.Location = new System.Drawing.Point(100, 200);
    buttonD.Text = "D= x1= x2=";
    buttonD.Click+=buttonD_Click;
    Controls.Add(buttonD);
    }
private void buttonD_Click(object sender, EventArgs e)
        {
    int za = Convert.ToInt32(textBoxA.Text);
    int zb = Convert.ToInt32(textBoxB.Text);
    int zc = Convert.ToInt32(textBoxC.Text);
double d = (zb * zb - 4 * za * zc);
double x1 = (-zb + Math.Sqrt(d)) / (2 * za);
double x2 = (-zb - Math.Sqrt(d)) / (2 * za);
    string dd = (d.ToString());
    string xx1 = (x1.ToString());
    string xx2 = (x2.ToString());
    string m = "D= " + dd + "  x1= " + xx1 + "  x2= " + xx2;
        {
MessageBox.Show(m);
        }
    }
    }  
}

и заодно стиль оформления удобный для форумов и для распечатки

Учим C# Windows Forms зная Basic
Приложение считывает из окон
заданные или назначенные значения
и создаёт расчёты и оформление
используя данные данные
и далее планируется графика в форме
//SUMCOMB.cs<br />using System; <br />using System.Drawing;<br />using System.Windows.Forms;<br />namespace SUMCOMB<br />{<br />	public class Program<br />	{<br />	static void Main()<br />	{<br />Application.Run(new SUMCOMB());<br />	}<br />	}<br />	class SUMCOMB : Form<br />	{<br />	ComboBox comboBoxD;<br />	TextBox textBoxA; <br />	Button buttonV;<br /><br />public SUMCOMB()<br />	{<br />var labelD = new Label();<br />	labelD.Text = "D СТРОК";<br />	labelD.Location = new System.Drawing.Point(45, 28);<br />	Controls.Add(labelD);<br /><br />comboBoxD = new ComboBox();<br />	comboBoxD.Location = new Point(45, 50);<br />	comboBoxD.Width = 50;<br />	comboBoxD.Items.Add("7");<br />	comboBoxD.Items.Add("5");<br />	comboBoxD.Items.Add("3");<br />	comboBoxD.SelectedIndex = 1;<br />	this.Controls.Add(comboBoxD);<br /><br />var labelA = new Label();<br />	labelA.Text = "A СТОЛБЦОВ";<br />	labelA.Location = new System.Drawing.Point(45, 78);<br />	Controls.Add(labelA);<br /><br />textBoxA=new TextBox();<br />	textBoxA.Text = "4"; <br />	textBoxA.Location = new System.Drawing.Point(45, 100);<br />	this.Controls.Add(textBoxA); <br /><br />buttonV = new Button();	<br />	buttonV.Location = new System.Drawing.Point(45, 200);<br />	buttonV.Text = "SUMCOMB";<br />	buttonV.Click+=buttonV_Click;<br />	Controls.Add(buttonV);<br />}<br /><br />private void buttonV_Click(object sender, EventArgs e)<br />	{<br />	int dd = int.Parse(comboBoxD.Text);<br />	int aa = int.Parse(textBoxA.Text);<br />for (int i = 1; i <= dd; i++)<br />{<br />string s= "";<br />for (int j = 1; j <= aa; j++)<br />s = s+"  "+(i+j).ToString();<br />var labelI = new Label();<br />labelI.Text = s;<br />labelI.Location = new System.Drawing.Point(145, 25+25*i);<br />Controls.Add(labelI);<br />}<br />		}<br />	}<br />}
Учим C# Windows Forms зная Basic


Далее исследую другие Windows окна и формы
соблюдающие принцип 1cs=1exe
чтоб компилировались без сред

Сборники тысяч программ 

http://rosettacode.org/wiki/Category:C_sharp
http://rosettacode.org/wiki/Category:QB64

Никому никогда ничего не рекомендую и всегда пишу только про себя

Список других моих тем в теме

Интеграл побеждает Логарифм: реальность и зазеркалье

15 комментариев
юмористическая картинка показывает почему важно:
basic не воспринимают всерьёз 

 аватары из параметрического мультфильма



и возможно нарисовать в qb & C#
и параметрически анимировать
 другие программы C# & basic есть в теме


Русская сортировка половинами: человеческая сортировка быстрее в 4 раза и МЫ

smart-lab.ru/blog/copypaste/489819.php

и накануне распечатал мини книжку из данных программ
чтоб проверить: могут ли другие изучить
сначала подписывая комментарии в строки вручную

посмотреть анимации встроенных изображений
возможно в копии темы
на параллельном форуме
Учим C# Windows Forms зная Basic
ИНТЕГРАЛ понятно школа просто детский сад Данилин INTEGRAL


ЛОГАРИФМ понятно школа просто детский сад Данилин LOGARITHM


КОМБИНАТОРИКА понятно школа просто детский сад Данилин COMBINATORY

Постоянно возникают темы где вводится массив вручную
что недопустимо в 21 веке и в онлайн компиляторы несовместимо
поэтому предлагается универсальное...

Заполнение массива случайными целыми от -100 до 100 и вывод на экран

Excel Эксцель

=случмежду(-100;100)

=случмежду(0;200)-100

qb64 qbasic boxgm.itch.io/qbjs

N=10: Dim a(N): Randomize Timer 'massiv.bas
For i=1 To N: a(i)=Int(Rnd*200-100):? a(i): Next

v6p9d9t4.ssl.hwcdn.net/html/5512918/index.html?qbcode=BOAQAHvAMcAwgDrQkRpbcAYaAUKAFJ0QpMLcyN7a0vTLgRUaW1lcuwCehW1hc3NpdpALsCYmFzcAKYJGb3KUBprbtAVRv6rCA2Z4hJLc6XoEpNzJrAKuQBkOHEAt4G9UyiKDk0tzp1SgNqDTmV4dIw==


C# rextester.com/CRPU41269


using System; //massiv.bat csc.exe /nologo massiv.cs

namespace massiv { public class Program
{ static void Main(string[] args)
{ int N=10; int[] a = new int[N+1];
Random rand = new Random();
for (int i = 1; i <= N; i++)
{ a[i] = rand.Next(200)-100;
Console.WriteLine(a[i]);
}
Console.ReadKey();
}}}


Long Read:
docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/arrays/
_docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/arrays/

rosettacode.org/wiki/Random_numbers
_rosettacode.org/wiki/Random_numbers

rosettacode.org/wiki/Arrays
_rosettacode.org/wiki/Arrays

Ваши программы ждём: VBA pascal delphi java c c+ c++ cobol клингонский python ?

Пиковая Дама Управление Рисками Данилин Queen Spades Risk Management Danilin

автокад лисп autocad lisp массовая замена текста. часть 1-я из 2-х:
tfind2fun.lsp

;- Text Find -;
; Mark Mercier ;
; 05-06-09 ;

(defun tfind2fun (inputF inputR caseSn / goto goWhile strinF strinR selSet selTxt searep case count error)

(vl-load-com)
(setq goTo 1)
(setq goWhile 1)
(setq count 0)
(if (not (mlml (list caseSn) (list 0 1)))
(progn (setq goWhile nil) (princ "\nCase selection not recognized."))
) ;_ end of if
(if (= caseSn 0)
(setq case «N»)
(setq case «Y»)
) ;_ end of if
(while goWhile
(cond
((= goTo 1)
(if (setq selSet (extTxtPt (ssget «X»)))
(setq goTo 2)
(setq error "\nSelection set not found."
goTo 8
) ;_ end of setq
) ;_ end of if
)
((= goTo 2)
; Check input, pass to whatever.
(cond
((and (= inputF nil) (= inputR nil))
(setq goTo 3)
)
((and (= (type inputF) 'STR) (= inputR nil))
(setq strinF inputF)
(setq goTo 6)
)
((and (= (type inputF) 'STR) (= (type inputR) 'STR))
(setq strinF inputF)
(setq strinR inputR)
(setq goTo 7)
)
(t
(setq error "\nPassed arguments are not accepted.")
(setq goTo 8)
)
) ;_ end of cond
)
((= goTo 3)
; Obtain desired option from user
(while (not
(mlml (list (setq searep (strcase (getstring nil "\nSelect option [Find/Replace/Quit/Case]: "))))
(list «F» «FIND» «R» «REPLACE» «Q» «QUIT» «C» «CASE»)
) ;_ end of mlml
) ;_ end of not
) ;_ end of while
(cond
((mlml (list searep) (list «F» «FIND»))
(setq goTo 4)
)
((mlml (list searep) (list «R» «REPLACE»))
(setq goTo 5)
)
((mlml (list searep) (list «Q» «QUIT»))
(setq goTo 8)
)
((mlml (list searep) (list «C» «CASE»))
(while (not (mlml (list (setq case (strcase (getstring nil "\nCase sensitive? [Yes/No]: "))))
(list «Y» «YES» «N» «NO»)
) ;_ end of mlml
) ;_ end of not
) ;_ end of while
)
) ;_ end of cond
)
((= goTo 4)
; Obtain search string from user, set to strinF
(while (eq "" (setq strinF (getstring t "\nEnter search term: "))))
(setq goTo 6)
)
((= goTo 5)
; Obtain search string and replace string from user, set to strinF and strinR respectively
(while (eq "" (setq strinF (getstring t "\nEnter find term: "))))
(while (eq "" (setq strinR (getstring t "\nEnter replace term: "))))
(setq goTo 7)
)
((= goTo 6)
; Search drawing for strinF
(cond
((mlml (list case) (list «Y» «YES»))
; Compare using (vl-string-search strinF input), view selection
; use «while» to get all search occurances
(foreach selVar selSet
(if (vl-string-search strinF (nth 0 selVar))
(progn
(setq count (1+ count))
(if (/= (getvar «ctab») (caddr selVar))
(command «ctab» (caddr selVar))
) ;_ end of if
(command «zoom» «c» (trans (cadr selVar) 0 1) (* 32 (nth 3 selVar)))
(getstring "\nPress 'Enter' to continue: ")
) ;_ end of progn
) ;_ end of if
) ;_ end of foreach
)
((mlml (list case) (list «N» «NO»))
; Compare using (vl-string-search (strcase strinF) (strcase input)), view selection
; use «while» to get all search occurances
(foreach selVar selSet
(if (vl-string-search (strcase strinF) (strcase (nth 0 selVar)))
(progn
(setq count (1+ count))
(if (/= (getvar «ctab») (caddr selVar))
(command «ctab» (caddr selVar))
) ;_ end of if
(command «zoom» «c» (trans (cadr selVar) 0 1) (* 32 (nth 3 selVar)))
(getstring "\nPress 'Enter' to continue: ")
) ;_ end of progn
) ;_ end of if
) ;_ end of foreach
)
) ;_ end of cond
(if (= count 0)
(setq error "\nNo matches found.")
(setq error (strcat (itoa count) " matches found."))
) ;_ end of if
(setq goTo 8)
)
((= goTo 7)
; Replace strinF with strinR
(cond
((mlml (list case) (list «Y» «YES»))
; Compare using (vl-search-string strinF input), modify using (vl-string-subst) within a while loop
(foreach selVar selSet
(setq selTxt (nth 0 selVar))
(setq seaLoc 0)
(while (setq seaLoc (vl-string-search strinF selTxt seaLoc))
(setq selTxt (vl-string-subst strinR strinF selTxt seaLoc))
(setq seaLoc (+ seaLoc (strlen strinR)))
(setq count (1+ count))
) ;_ end of while
(vla-put-textstring (vlax-ename->vla-object (nth 4 selVar)) selTxt)
) ;_ end of foreach
)
((mlml (list case) (list «N» «NO»))
; Compare using (vl-string-search (strcase strinF) (strcase input)), modify using (vl-string-subst) within a while loop
(foreach selVar selSet
(setq selTxt (nth 0 selVar))
(setq seaLoc 0)
(while (setq seaLoc (vl-string-search (strcase strinF) (strcase selTxt) seaLoc))
(setq selTxt (strcat (substr selTxt 1 seaLoc) strinR (substr selTxt (+ 1 seaLoc (strlen strinF)))))
(setq seaLoc (+ seaLoc (strlen strinR)))
(setq count (1+ count))
) ;_ end of while
(vla-put-textstring (vlax-ename->vla-object (nth 4 selVar)) selTxt)
) ;_ end of foreach
)
) ;_ end of cond
(if (= count 0)
(setq error "\nNo occurances found.")
(setq error (strcat (itoa count) " occurances modified."))
) ;_ end of if
(setq goTo 8)
)
((= goTo 8)
(if error
(princ error)
) ;_ end of if
(setq goWhile nil)
)
) ;_ end of cond
) ;_ end of while
(princ)
) ;_ end of defun

(defun mlml (inSMLChar inSMLStri / returnVarMS toCheck chkWith)
(setq returnVarMS nil)
(if (and (= (type inSMLChar) 'list)
(= (type inSMLStri) 'list)
) ;_ end of and
(progn
(foreach toCheck inSMLStri
(foreach chkWith inSMLChar
(if (eq toCheck chkWith)
(setq returnVarMS t)
) ;_ end of if
) ;_ end of foreach
) ;_ end of foreach
) ;/progn
) ;_ end of if
returnVarMS
); Checks a list to see if a member of that list is the same as a member of another list. Returns T or nil

(defun extTxtPt (ssList / subVar getEnt entTyp entTxt entPnt entLay entHgt grp66 entAtt getEntAtt entAttTyp uniLst)
(setq uniLst nil)
(setq subVar 0)
(if ssList
(repeat (sslength ssList)
(setq getEnt (entget (cadr (car (ssnamex ssList subVar)))))
(setq entTyp (cdr (assoc 0 getEnt)))
(cond
((or (= entTyp «TEXT») (= entTyp «MTEXT»))
(setq entTxt (cdr (assoc 1 getEnt)))
(setq entPnt (cdr (assoc 10 getEnt)))
(setq entHgt (cdr (assoc 40 getEnt)))
(setq entLay (cdr (assoc 410 getEnt)))
(setq entNam (cdr (assoc -1 getEnt)))

(setq uniLst (append uniLst (list (list entTxt entPnt entLay entHgt entNam))))
)
((= entTyp «INSERT»)
(setq grp66 (assoc 66 getEnt))
(if grp66
(progn
(setq entAtt (entnext (cdr (assoc -1 getEnt))))
(setq getEntAtt (entget entAtt))
(setq entAttTyp (cdr (assoc 0 getEntAtt)))
) ;_ end of progn
) ;_ end of if
(while (= entAttTyp «ATTRIB»)
(setq entTxt (cdr (assoc 1 getEntAtt)))
(setq entPnt (cdr (assoc 10 getEntAtt)))
(setq entHgt (cdr (assoc 40 getEntAtt)))
(setq entLay (cdr (assoc 410 getEntAtt)))
(setq entNam (cdr (assoc -1 getEntAtt)))

(setq uniLst (append uniLst (list (list entTxt entPnt entLay entHgt entNam))))

; Get next entity.
(setq entAtt (entnext (cdr (assoc -1 getEntAtt))))

; Get ent and ent type
(setq getEntAtt (entget entAtt))
(setq entAttTyp (cdr (assoc 0 getEntAtt)))
) ;_ end of while
)
(t
)
) ;_ end of cond
(setq subVar (1+ subVar))
) ;_ end of repeat
) ;_ end of if
uniLst
); Return list of all text-based objects in the current drawing
автокад лисп autocad lisp массовая замена текста. часть 2-я из 2-х:
zam.lsp

(defun c:zam ()
(tfind2fun «dn 300 A» "%%c300" 1)
(tfind2fun «dn 250 A» "%%c250" 1)
(tfind2fun «dn 200 A» "%%c200" 1)
(tfind2fun «dn 150 A» "%%c150" 1)
(tfind2fun «dn 125 A» "%%c250" 1)
(tfind2fun «dn 100 A» "%%c100" 1)
(tfind2fun «dn 80 A» "%%c80" 1)
(tfind2fun «dn 65 A» "%%c65" 1)
(tfind2fun «dn 50 A» "%%c50" 1)
(tfind2fun «dn 40 A» "%%c40" 1)
(tfind2fun «dn 32 A» "%%c32" 1)
(tfind2fun «dn 25 A» "%%c25" 1)
(tfind2fun «dn 20 A» "%%c20" 1)
(tfind2fun «dn 15 A» "%%c15" 1)
(tfind2fun «dn 10 A» "%%c20" 1)
(tfind2fun «dn 0 A» «расчет» 1)
(tfind2fun «L » «Lm » 1)
)


и рядом помещаем данный лисп ZAM.lsp
в автозагрузку AutoCAD добавляем оба лиспа

и отныне именно в zam.lsp привязанном к блокноту
набираем строки замены и сохраняем

AutoCAD загружаясь считывает оба лиспа
и всё по списку само заменяет команда zam
автокад лисп autocad lisp переименовывается нумерация
подчёркнутого текста

например стыки или опоры переименовать
добавив или удалив стыки или опоры

автокад лисп autocad lisp переименовывает подчёркнутый текст

команда REW и диалог плюс подсказки

;; rew.lsp перенумерация подчеркнутого текста
(defun C:REW (/ *error* elist en lname lock lrlist ltbr match rate ss start state txt)
    (defun *error* ( msg )
    (command "_.undo" "_end")
    (if msg
    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
        (princ (strcat "\n** Error: " msg " **")))
      )
    (command)
    (princ)
  ) 
(setq lname (getstring "\nВведите имя слоя текста <Стыки>: "))
(if (eq "" lname)(setq lname «Стыки»))
  (setq ltbr (tblobjname «layer» lname)
      lrlist(entget ltbr)
      )
(setq state (cdr (assoc 70 lrlist)))
(if (not (zerop state))
  (progn
    (setq lock T)
(entmod (subst (cons 70 0)(assoc 70 lrlist) lrlist)))
  )
(initget 7)
(setq start (getint "\nВведите стартовый номер: "))
(if (setq ss (ssget (list (cons 0 «TEXT»)(cons 1 "%%U*")(cons 8 lname))))
      (progn
        (initget 2)
        (setq rate (getint "\nВведите шаг (используйте минус для понижения нумерации) <1>: "))
        (if (not rate)(setq rate 1))
        (command "_.undo" "_begin")
  (while
   (setq en (ssname ss 0))
     (setq elist (entget en))
     (setq txt (cdr (assoc 1 elist)))
     (setq match (atoi (vl-string-subst  "" "%%U" txt)))
   (if (>= match start)
     (progn
     (setq txt  (strcat "%%U" (itoa (+ rate (atoi (vl-string-subst  "" "%%U" txt))))))
       (entmod (subst (cons 1 txt) (assoc 1 elist) elist))
       (entupd en)
       )
     )
   (ssdel en ss)
       )
   )
      )
(if (and state lock)
  (entmod (subst (cons 70 state)(assoc 70 lrlist) lrlist))
  )
(*error* nil)
  (princ)
  )
(princ "\n  ==   Программа перенумерации текста загружена   ==")
(princ "\n   = [Только для подчеркнутых однострочных тестов] =")
(prompt "\n   ***     Для выполнения введите REW     ***")
(prin1)
накануне за 2 часа сочинил используя только мои наработки
и надеюсь далее развить элементы управления
и добавится какая-нибудь бегущая строка




особенность: элементы под номерами вместо букв
и важно додумать как внедрить индексы и массивы в формы
и применить всевозможные формы управления

плюс кнопки появляются поочерёдно
плюс применён стиль qbasic блок команд в строке и ещё сплющу
плюс мой выбор 1cs=1exe значит включится у многих без Visual Studio

<code>// POLE.cs
using System; using System.IO;
using System.Drawing; using System.Diagnostics;
using System.Windows.Forms; namespace POLE
{
	public class Program
{
static void Main()
	{
Application.Run(new POLE());
	}
	}
	class POLE : Form 
	{
double[] d = new double[5];Random rand = new Random();
ComboBox comboBox1;ComboBox comboBox2;ComboBox comboBox3;ComboBox comboBox4;
Button button1;	Button button2;
TextBox textBox1; TextBox textBox2; TextBox textBox3; TextBox textBox4; 
TextBox textBox5; TextBox textBox6; TextBox textBox7; TextBox textBox8; 

	public POLE()
	{
comboBox1 = new ComboBox();
	comboBox1.Location = new Point(45, 50); comboBox1.Width = 40;
comboBox1.Items.AddRange(new string[] {"7","8","9","10","11","12"});<br />comboBox1.SelectedIndex = 1;
comboBox2 = new ComboBox();
	comboBox2.Location = new Point(105, 50); comboBox2.Width = 40;
comboBox2.Items.AddRange(new string[] {"24","23","22","21","20","19"});<br />	comboBox2.SelectedIndex = 3;
comboBox3 = new ComboBox();
	comboBox3.Location = new Point(165, 50); comboBox3.Width = 40;
comboBox3.Items.AddRange(new string[] {"3","2","1","4","5","6"});<br />	comboBox3.SelectedIndex = 4;
comboBox4 = new ComboBox();
	comboBox4.Location = new Point(225, 50); comboBox4.Width = 40;
comboBox4.Items.AddRange(new string[] {"13","15","17","14","15","16"});<br />	comboBox4.SelectedIndex = 5;

button1 = new Button();	
	button1.Location = new System.Drawing.Point(115, 80);
	button1.Width = 80; button1.Text = "Пиши Читай";
	button1.Click+=button1_Click;

var label1 = new Label(); label1.Text = "HOMEPA";
	label1.Location = new System.Drawing.Point(125, 28);

Controls.Add(comboBox1);Controls.Add(comboBox2);Controls.Add(comboBox3);Controls.Add(comboBox4);
Controls.Add(button1);Controls.Add(label1); 
	}</code>
компилирую через pole.bat

csc.exe /target:winexe POLE.cs
pause
окончание предыдущей программы
<code>private void button1_Click(object sender, EventArgs e)
	{ 
var outFile = new StreamWriter("dan.txt");
outFile.WriteLine(comboBox1.Text);outFile.WriteLine(comboBox2.Text);
outFile.WriteLine(comboBox3.Text);outFile.WriteLine(comboBox4.Text);
outFile.Close(); var inpFile = new StreamReader("dan.txt");

textBox1=new TextBox(); this.Controls.Add(textBox1); 
	textBox1.Text = inpFile.ReadLine(); textBox1.Width = 40;
	textBox1.Location = new System.Drawing.Point(225, 120);
textBox2=new TextBox(); this.Controls.Add(textBox2); 
	textBox2.Text = inpFile.ReadLine(); textBox2.Width = 40;
	textBox2.Location = new System.Drawing.Point(165, 120);
textBox3=new TextBox(); this.Controls.Add(textBox3); 
	textBox3.Text = inpFile.ReadLine(); textBox3.Width = 40;
	textBox3.Location = new System.Drawing.Point(105, 120);
textBox4=new TextBox(); this.Controls.Add(textBox4); 
	textBox4.Text = inpFile.ReadLine(); textBox4.Width = 40;
	textBox4.Location = new System.Drawing.Point(45, 120);
inpFile.Close();

button2 = new Button();	button2.Text = "Улучшь";
	button2.Location = new System.Drawing.Point(115, 160);
	button2.Click+=button2_Click; 	Controls.Add(button2);
	}

private void button2_Click(object sender, EventArgs e)
	{
d[1]=double.Parse(textBox1.Text);d[2]=double.Parse(textBox2.Text);
d[3]=double.Parse(textBox3.Text);d[4]=double.Parse(textBox4.Text);

for (int i = 1; i <= 3; i++)
	for (int j = i+1; j <= 4; j++)
	{ if (d[i] > d[j])
	{var temp = d[j];d[j] = d[i];d[i] = temp;}
	}

for (int t = 1; t <= 500; t++)
{textBox5=new TextBox();  
	textBox5.Text = (d[1].ToString()); textBox5.Width = 40;
	textBox5.Location = new System.Drawing.Point(45, 220); 
	this.Controls.Add(textBox5); }
for (int t = 1; t <= 500; t++)
{textBox6=new TextBox();
	textBox6.Text = (d[2].ToString()); textBox6.Width = 40;
	textBox6.Location = new System.Drawing.Point(105, 220);
	this.Controls.Add(textBox6); }
for (int t = 1; t <= 500; t++)
{textBox7=new TextBox();
	textBox7.Text = (d[3].ToString()); textBox7.Width = 40;
	textBox7.Location = new System.Drawing.Point(165, 220);
	this.Controls.Add(textBox7); }
textBox8=new TextBox();
	textBox8.Text = (d[4].ToString()); textBox8.Width = 40;
	textBox8.Location = new System.Drawing.Point(225, 220);
	this.Controls.Add(textBox8); 
}}}</code>
qbasic игра угадай число: 1 строка

1 IF Russia = 0 THEN Russia = 2222: RANDOMIZE TIMER: num = INT(RND * 100) + 1: GOTO 1 ELSE IF Russia <> 0 THEN INPUT n: IF n < num THEN PRINT «MORE»: GOTO 1 ELSE IF n > num THEN PRINT «less»: GOTO 1 ELSE IF n = num THEN PRINT «da»: END ELSE GOTO 1 'DANILIN Russia 9-9-2019 guessnum.bas

qbasic version of «guess my number game» 1 line

c# игра угадай число: 1 строка

using System; using System.Text;namespace GURU { class Program { static void Main(string[] args) { Random rand = new Random(); int Russia = 0; int n = 0; int num = 0; dav: if(Russia == 0) {Russia = 2222; num = rand.Next(100)+1; goto dav; }else if (Russia != 0) {Console.Write("? "); n = Convert.ToInt32(Console.ReadLine());} if (n < num) { Console.WriteLine(«MORE»); goto dav;}else if (n > num) { Console.WriteLine(«less»); goto dav;}else if (n == num) {Console.Write(«da»); Console.ReadKey(); }else goto dav;}}}// DANILIN Russia 9-9-2019 rextester.com/GXC1328 guessnum.cs

c# version of «guess my number game» 1 line
// ELEMENTS.cs
// csc.exe /target:winexe ELEMENTS.cs
// pause
using System; using System.IO;
using System.Drawing; using System.Diagnostics;
using System.Windows.Forms; namespace ELEMENTS
{
    public class Program

{static void Main()
{Application.Run(new ELEMENTS());}}
    class ELEMENTS: Form
    {
ComboBox comboBox1; TextBox textBox1, textBox2;
CheckBox checkBox41, checkBox42; Button button1;
RadioButton radioButton31, radioButton32, radioButton33;
Label label1, label2, label3, label31, label33;
Label label4, label41, label42, label5, label6; ListBox listBox5;
CheckedListBox checkedlistBox6;

    public ELEMENTS()

{ Text = «ELEMENTS»; BackColor = SystemColors.WindowText;
ForeColor = SystemColors.Window;
ResizeRedraw = true; Width = 480; Height = 240; }

    protected override void OnPaint(PaintEventArgs dan)
    {

comboBox1 = new ComboBox();
    comboBox1.Location = new Point(10, 50); comboBox1.Width = 40;
    comboBox1.Items.AddRange(new string[] {«3»,«2»,«1»,«4»,«5»,«6»});
    comboBox1.SelectedIndex = 2; comboBox1.BackColor = Color.Red;

textBox2=new TextBox(); textBox2.Text = «2»; textBox2.Width = 20;
textBox2.Location = new Point(70, 50); textBox2.BackColor = Color.Orange;

radioButton31 = new RadioButton(); radioButton31.Location = new Point(170, 50);
    radioButton31.Checked = true; radioButton31.Width = 20;
radioButton32 = new RadioButton(); radioButton32.Location = new Point(150, 70);
    radioButton32.Checked = false; radioButton32.Width = 20;
radioButton33 = new RadioButton(); radioButton33.Location = new Point(130, 90);
    radioButton33.Checked = false; radioButton33.Width = 20;
radioButton33.BackColor = Color.Yellow;

checkBox41 = new CheckBox(); checkBox41.Location = new Point(220, 50);
checkBox41.Checked = true; checkBox41.Width = 20;
checkBox42 = new CheckBox(); checkBox42.Location = new Point(200, 70);
checkBox42.Checked = false; checkBox42.Width = 20;
checkBox42.BackColor = Color.Green; // checkBox42.Appearance = 1; // true

listBox5 = new ListBox(); listBox5.Location = new Point(280, 50);
listBox5.Items.AddRange(new string[] {«6»,«5»,«4»,«1»,«2»,«3»});
listBox5.Width = 40; listBox5.SelectedIndex = 1; listBox5.BackColor = Color.Blue;

checkedlistBox6 = new CheckedListBox(); checkedlistBox6.Location = new Point(360, 50);
checkedlistBox6.Items.AddRange(new string[] {«1»,«3»,«5»,«2»,«4»,«6»});
checkedlistBox6.Width = 40; checkedlistBox6.SelectedIndex = 5;
checkedlistBox6.BackColor = Color.Magenta;



label1 = new Label(); label1.Text = «comboBox»;
    label1.Location = new Point(10, 20); label1.Width = 60;
label2 = new Label(); label2.Text = «textBox»;
    label2.Location = new Point(70, 20); label2.Width = 60;

label3 = new Label(); label3.Text = «radioButton»;
    label3.Location = new Point(130, 20); label3.Width = 80;
label31 = new Label(); label31.Text = «31»;
    label31.Location = new Point(130, 50); label31.Width = 20;
label33 = new Label(); label33.Text = «33»;
    label33.Location = new Point(170, 90); label33.Width = 20;

label4 = new Label(); label4.Text = «checkBox»;
    label4.Location = new Point(210, 20); label4.Width = 60;
label41 = new Label(); label41.Text = «41»;
    label41.Location = new Point(240, 53); label41.Width = 20;
label42 = new Label(); label42.Text = «42»;
    label42.Location = new Point(230, 78); label42.Width = 20;

label5 = new Label(); label5.Text = «listBox»;
    label5.Location = new Point(280, 20); label5.Width = 60;
label6 = new Label(); label6.Text = «checkedlistBox»;
    label6.Location = new Point(360, 20); label6.Width = 100;

Controls.Add(comboBox1); Controls.Add(textBox2); Controls.Add(listBox5);
Controls.Add(checkBox41); Controls.Add(checkBox42); Controls.Add(radioButton31);
Controls.Add(radioButton32); Controls.Add(radioButton33);
Controls.Add(checkedlistBox6);

Controls.Add(label1); Controls.Add(label2); Controls.Add(label3);
Controls.Add(label4); Controls.Add(label41); Controls.Add(label42);
Controls.Add(label31); Controls.Add(label33); Controls.Add(label5);
Controls.Add(label6);

button1 = new Button();    button1.Click+=button1_Click;
    button1.Location = new System.Drawing.Point(10, 80);
    button1.Width = 80; button1.Text = «Переставить»;

Controls.Add(button1);
    }

private void button1_Click(object sender, EventArgs e)
    {

textBox1=new TextBox(); textBox1.Text = listBox5.Text;
textBox1.Width = 40;
    textBox1.Location = new Point(10, 120);
Controls.Add(textBox1);
}}}




теги блога Логарифм Интегралыч

....все тэги



UPDONW
Новый дизайн