Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Добавить к маленькой программке счетчик хода

Всем привет. Мудрю дальше. Пробую добавить на ранее показанной программке счетчик хода.
Цель такая. Пользователь видит какой раз он не может отгадать задуманное число компьютером. А если он угадывает, то ему показывается с какого раза он все таки угадал. Я начал делать, но опять загвоздка в моих знаниях.
Вот прога:
Java(TM) 2 Platform Standard Edition 5.0
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
import java.util.Scanner;
 
public class Logica1 {
 
    public static Scanner vvod() {
        Scanner scanner = new Scanner(System.in);
        return scanner;
    }
    public static int intUser() {
        System.out.println("Введите число от 1 до 3" );
        return vvod().nextInt();
    }
    public static int intComp() {
        return (int) (Math.random() * 3 + 1);
    }
 
 
 
    public static int decisionPlayer() {
        System.out.println(" Чтобы продолжить нажмите любую клавишу, чтобы выйти нажмите: q ");
        int decision;
        String temp = vvod().nextLine();
        if (temp.equals("q")) {
            decision = 1;
        } else {
            decision = -1;
        }
        return decision;
    }
 
 
    public static void log() {
        int comp, user;
        while (true) {
 
        comp = intComp();
        user = intUser();
 
            if (comp == user) {
                System.out.println(" Правильно, вы угадали "+getMoveCounter()+" раза");
                break;
            } else {
                System.out.println
                        ("№ хода: "+getMoveCounter()+" Увы, вы не угадали. Компьютер загадал число: " + comp );
 
            }
 
        }
 
    }
    public static byte getMoveCounter() {//счетчик хода.
        byte moveCounter = 1; //Начинаеться с одного.
        return moveCounter;
    }
        public static void main (String[]args){
 
            System.out.println(" Угадайте число");
            log();
            while (true) {
 
 
                if (decisionPlayer() < 0) {
 
                    log();
                } else {
                    System.out.println(" Вы вышли из программы");
                    break;
                }
            }
        }
 
    }
Ответ: Класс все работает. Спасибо HOBATOP и Maximkaa, ваши варианты работают. Новатор так вообще супер усовершенствовал програмку так как даже и в планах не было. Получилось очень даже наглядно и понятно.
Вопрос: Маленькая программка с выполнением запроса в SQL

Здравствуйте,
помогите пожалуйста с программкой, нужно сделать на делфи
запрос:
SELECT "_bills".code_bill, "_bills".suma, "_ABONENT".CODE_abon
FROM XML_POLONNE.dbo."_ABONENT" "_ABONENT", XML_POLONNE.dbo."_bills" "_bills"
WHERE "_ABONENT".code_ab = "_bills".code_ab AND (("_bills".code_bill=2412669))

но что бы значение "code_bill=" можно было вводить в поле мемо и после нажатия на кнопку
запрос выполнялся.

вот наброски:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
Button1: TButton;
DBGrid1: TDBGrid;
Memo1: TMemo;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

end.

Заранее спасибо!
Ответ: А как же армия ?
Вопрос: Написать маленькую программку (нужно в качестве подарка для друга)

Здравствуйте, решил подарить другу футболку со скрином турбопаскаля. Нужна помощь в написании маленькой программы, хочу чтобы в ней содержался текст такого типа:
"Select a spawn point:
-Normal world (Middle level)
-Wonderful World (Hard level)"
Суть простая-для выбора нужного варианта ввести число
Ответ: Или:
Pascal
1
2
3
4
5
6
7
8
uses Crt;
begin
  WriteLn('Select a spawn point:'); 
  case ReadKey of
    '1': WriteLn('Normal world (Middle level)');
    '2': WriteLn('Wonderful World (Hard level)');
  end;
end.
Вопрос: Маленькая программка

Вот код:

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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
using System;
using EasyModbus;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
 
 
namespace WpfApp1
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow() {
            InitializeComponent();
            int a1 = 0;
            int a2 = 0;
            int a3 = 0;
            int a4 = 0;
            int a5 = 0;
            int a6 = 0;
            float у11 = 0;
            float у12 = 0;
            float у13 = 0;
            float у14 = 0;
            float у15 = 0;
            float у16 = 0;
            float у17 = 0;
            float у18 = 0;
            float у21 = 0;
            float у22 = 0;
            float у23 = 0;
            float у24 = 0;
            float у25 = 0;
            float у26 = 0;
            float у27 = 0;
            float у28 = 0;
            float у31 = 0;
            float у32 = 0;
            float у33 = 0;
            float у34 = 0;
            float у35 = 0;
            float у36 = 0;
            float у37 = 0;
            float у38 = 0;
            string s1 = "Данные получены";
 
            ModbusClient modbusClient = new ModbusClient(Convert.ToString(COM));     //Номер ком порта
            modbusClient.UnitIdentifier = (10);                                      //Адрес устройства
            modbusClient.Baudrate = (9600);                                          //Скорость
            modbusClient.Parity = System.IO.Ports.Parity.None;                       //Чётность
            modbusClient.StopBits = System.IO.Ports.StopBits.Two;                    //Стоп биты
            modbusClient.ConnectionTimeout = 500;                                    //Время ожидания
 
            try {
                modbusClient.Connect();
                a1 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(2, 1), ModbusClient.RegisterOrder.LowHigh);     //Статус устройства 1
                a2 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(23, 1), ModbusClient.RegisterOrder.LowHigh);    //Статус устройства 2
                a3 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(44, 1), ModbusClient.RegisterOrder.LowHigh);    //Статус устройства 3
                a4 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(265, 1), ModbusClient.RegisterOrder.LowHigh);   //Адрес устройства 1
                a5 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(266, 1), ModbusClient.RegisterOrder.LowHigh);   //Адрес устройства 2
                a6 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(267, 1), ModbusClient.RegisterOrder.LowHigh);   //Адрес устройства 3
 
                у11 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(7, 2), ModbusClient.RegisterOrder.LowHigh);  //Параметр 1
                у12 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(9, 2), ModbusClient.RegisterOrder.LowHigh);  //Параметр 2
                у13 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(11, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 3
                у14 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(13, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 4
                у15 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(15, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 5
                у16 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(17, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 6
                у17 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(19, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 7
                у18 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(21, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 8
 
                у21 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(28, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 1
                у22 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(30, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 2
                у23 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(32, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 3
                у24 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(34, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 4
                у25 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(36, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 5
                у26 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(38, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 6
                у27 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(40, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 7
                у28 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(42, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 8
 
                у31 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(49, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 1
                у32 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(51, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 2
                у33 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(53, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 3
                у34 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(55, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 4
                у35 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(57, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 5
                у36 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(59, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 6
                у37 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(61, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 7
                у38 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(63, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 8
 
            }
            catch {
                s1 = "Ошибка связи!";
            }
            СтатусСвязи.Text = Convert.ToString(s1);
            Статус1.Text = Convert.ToString(a1);
            Статус2.Text = Convert.ToString(a2);
            Статус3.Text = Convert.ToString(a3);
 
            АдресУстройства1.Text = Convert.ToString(a4);
            АдресУстройства2.Text = Convert.ToString(a5);
            АдресУстройства3.Text = Convert.ToString(a6);
 
            У1Параметр1.Text = Convert.ToString(у11);
            У1Параметр2.Text = Convert.ToString(у12);
            У1Параметр3.Text = Convert.ToString(у13);
            У1Параметр4.Text = Convert.ToString(у14);
            У1Параметр5.Text = Convert.ToString(у15);
            У1Параметр6.Text = Convert.ToString(у16);
            У1Параметр7.Text = Convert.ToString(у17);
            У1Параметр8.Text = Convert.ToString(у18);
 
            У2Параметр1.Text = Convert.ToString(у21);
            У2Параметр2.Text = Convert.ToString(у22);
            У2Параметр3.Text = Convert.ToString(у23);
            У2Параметр4.Text = Convert.ToString(у24);
            У2Параметр5.Text = Convert.ToString(у25);
            У2Параметр6.Text = Convert.ToString(у26);
            У2Параметр7.Text = Convert.ToString(у27);
            У2Параметр8.Text = Convert.ToString(у28);
 
            У3Параметр1.Text = Convert.ToString(у31);
            У3Параметр2.Text = Convert.ToString(у32);
            У3Параметр3.Text = Convert.ToString(у33);
            У3Параметр4.Text = Convert.ToString(у34);
            У3Параметр5.Text = Convert.ToString(у35);
            У3Параметр6.Text = Convert.ToString(у36);
            У3Параметр7.Text = Convert.ToString(у37);
            У3Параметр8.Text = Convert.ToString(у38);
 
            modbusClient.Disconnect();
        }
 
    }
}

Суть в чём, есть элементы TextBox и есть допустим
C#
1
modbusClient.UnitIdentifier = (10);                                      //Адрес устройства
тип данных байт. ну и остальные параметры порта.
из этого вопросы:
1. как преобразовать TextBox в байт
2. как запустить по этомуже принцепу всё остальное конкретно:
C#
1
2
3
4
5
            modbusClient.UnitIdentifier = (10);                                      //Адрес устройства
            modbusClient.Baudrate = (9600);                                          //Скорость
            modbusClient.Parity = System.IO.Ports.Parity.None;                       //Чётность
            modbusClient.StopBits = System.IO.Ports.StopBits.Two;                    //Стоп биты
            modbusClient.ConnectionTimeout = 500;                                    //Время ожидания
3. Есть кнопка, как сделать по клику на кнопку чтобы весь код отработал. нажал, данные прочитал. еще раз наждал, еще раз прочитал.

Сразу говорю разбираюсь с C# всего 4й день. до этого писал только на ST

Добавлено через 40 минут
Сделал вот так:
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
using System;
using EasyModbus;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
 
 
namespace WpfApp1
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow() {
            InitializeComponent();
            
        }
 
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            int a1 = 0;
            int a2 = 0;
            int a3 = 0;
            int a4 = 0;
            int a5 = 0;
            int a6 = 0;
            float у11 = 0;
            float у12 = 0;
            float у13 = 0;
            float у14 = 0;
            float у15 = 0;
            float у16 = 0;
            float у17 = 0;
            float у18 = 0;
            float у21 = 0;
            float у22 = 0;
            float у23 = 0;
            float у24 = 0;
            float у25 = 0;
            float у26 = 0;
            float у27 = 0;
            float у28 = 0;
            float у31 = 0;
            float у32 = 0;
            float у33 = 0;
            float у34 = 0;
            float у35 = 0;
            float у36 = 0;
            float у37 = 0;
            float у38 = 0;
            string s1 = "Данные получены";
 
            ModbusClient modbusClient = new ModbusClient(Convert.ToString("COM3"));     //Номер ком порта
            modbusClient.UnitIdentifier = (10);                                      //Адрес устройства
            modbusClient.Baudrate = (9600);                                          //Скорость
            modbusClient.Parity = System.IO.Ports.Parity.None;                       //Чётность
            modbusClient.StopBits = System.IO.Ports.StopBits.Two;                    //Стоп биты
            modbusClient.ConnectionTimeout = 500;                                    //Время ожидания
 
            try
            {
                modbusClient.Connect();
                a1 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(2, 1), ModbusClient.RegisterOrder.LowHigh);     //Статус устройства 1
                a2 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(23, 1), ModbusClient.RegisterOrder.LowHigh);    //Статус устройства 2
                a3 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(44, 1), ModbusClient.RegisterOrder.LowHigh);    //Статус устройства 3
                a4 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(265, 1), ModbusClient.RegisterOrder.LowHigh);   //Адрес устройства 1
                a5 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(266, 1), ModbusClient.RegisterOrder.LowHigh);   //Адрес устройства 2
                a6 = ModbusClient.ConvertRegistersToInt(modbusClient.ReadInputRegisters(267, 1), ModbusClient.RegisterOrder.LowHigh);   //Адрес устройства 3
 
                у11 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(7, 2), ModbusClient.RegisterOrder.LowHigh);  //Параметр 1
                у12 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(9, 2), ModbusClient.RegisterOrder.LowHigh);  //Параметр 2
                у13 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(11, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 3
                у14 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(13, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 4
                у15 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(15, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 5
                у16 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(17, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 6
                у17 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(19, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 7
                у18 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(21, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 8
 
                у21 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(28, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 1
                у22 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(30, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 2
                у23 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(32, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 3
                у24 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(34, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 4
                у25 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(36, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 5
                у26 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(38, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 6
                у27 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(40, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 7
                у28 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(42, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 8
 
                у31 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(49, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 1
                у32 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(51, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 2
                у33 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(53, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 3
                у34 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(55, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 4
                у35 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(57, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 5
                у36 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(59, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 6
                у37 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(61, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 7
                у38 = ModbusClient.ConvertRegistersToFloat(modbusClient.ReadInputRegisters(63, 2), ModbusClient.RegisterOrder.LowHigh); //Параметр 8
 
            }
            catch
            {
                s1 = "Ошибка связи!";
            }
            СтатусСвязи.Text = Convert.ToString(s1);
            Статус1.Text = Convert.ToString(a1);
            Статус2.Text = Convert.ToString(a2);
            Статус3.Text = Convert.ToString(a3);
 
            АдресУстройства1.Text = Convert.ToString(a4);
            АдресУстройства2.Text = Convert.ToString(a5);
            АдресУстройства3.Text = Convert.ToString(a6);
 
            У1Параметр1.Text = Convert.ToString(у11);
            У1Параметр2.Text = Convert.ToString(у12);
            У1Параметр3.Text = Convert.ToString(у13);
            У1Параметр4.Text = Convert.ToString(у14);
            У1Параметр5.Text = Convert.ToString(у15);
            У1Параметр6.Text = Convert.ToString(у16);
            У1Параметр7.Text = Convert.ToString(у17);
            У1Параметр8.Text = Convert.ToString(у18);
 
            У2Параметр1.Text = Convert.ToString(у21);
            У2Параметр2.Text = Convert.ToString(у22);
            У2Параметр3.Text = Convert.ToString(у23);
            У2Параметр4.Text = Convert.ToString(у24);
            У2Параметр5.Text = Convert.ToString(у25);
            У2Параметр6.Text = Convert.ToString(у26);
            У2Параметр7.Text = Convert.ToString(у27);
            У2Параметр8.Text = Convert.ToString(у28);
 
            У3Параметр1.Text = Convert.ToString(у31);
            У3Параметр2.Text = Convert.ToString(у32);
            У3Параметр3.Text = Convert.ToString(у33);
            У3Параметр4.Text = Convert.ToString(у34);
            У3Параметр5.Text = Convert.ToString(у35);
            У3Параметр6.Text = Convert.ToString(у36);
            У3Параметр7.Text = Convert.ToString(у37);
            У3Параметр8.Text = Convert.ToString(у38);
 
            modbusClient.Disconnect();
        }
    }
}
С кнопки как я хотел вроде заработало, только есть одно но, после нажатия программа какбы зависает пока не выполнит работу. как этого избежать ?
Ответ: Mожно описать соединение таким конструктором
C#
1
2
3
4
5
6
7
8
9
public ModbusModelClass (string COM, int UnitIdentifier, int  Baudrate, ?  Parity, ? StopBits, int ConnectionTimeout ) 
{
            ModbusClient modbusClient = new ModbusClient(COM);     //Номер ком порта
            modbusClient.UnitIdentifier = UnitIdentifier ;                                      //Адрес устройства
            modbusClient.Baudrate = Baudrate;                                          //Скорость
            modbusClient.Parity = Parity ;                       //Чётность
            modbusClient.StopBits = StopBits ;                    //Стоп биты
            modbusClient.ConnectionTimeout = ConnectionTimeout;                                    //Время ожидания
}
Вопрос: Вывести последовательность больших и маленьких букв - Pascal

Здравствуйте, помогите пожалуйста, третий день ломаю голову над задачей (только начинаю изучать программирование).

Ввести последовательность больших и маленьких букв латинского алфавита. Сформировать два множества - S1 - множество с больших букв, S2 - множество с маленьких букв. Проверить содержат ли множества S1 и S2 одинаковые буквы (к примеру: "А" и "а"). Соответственные большие буквы записать в множество S3.

Выручайте, очень нужна помощь! Спасибо)
Ответ:
Pascal
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
uses crt;
var s1,s2,s3:set of char;
    i:byte;
    c:char;
begin
writeln('Введите строку из больших и маленьких английских букв, окончание ввода Enter');
s1:=[];
s2:=[];
repeat
c:=readkey;
if c in ['A'..'Z','a'..'z'] then
 begin
  write(c);
  if c in ['A'..'Z'] then s1:=s1+[c]
  else s2:=s2+[c];
 end
else if c=#13 then writeln
else c:=#0;
until c=#13;
writeln('Множество больших букв');
if s1=[] then writeln('Таких букв нет')
else
for c:='A' to 'Z' do
if c in s1 then write(c:2);
writeln;
writeln('Множество маленьких букв');
if s2=[] then writeln('Таких букв нет')
else
for c:='a' to 'z' do
if c in s2 then write(c:2);
writeln;
s3:=[];
for c:='A' to 'Z' do
if (c in s1)and(lowcase(c)in s2) then
s3:=s3+[c];
if s3=[] then write('Одинаковых букв нет')
else
 begin
  writeln('Одинаковые буквы');
  for c:='A' to 'Z' do
  if c in s3 then write(c:2);
 end;
end.
Вопрос: Заглавная первая буква и маленькие остальные в строке

Всем привет!
Как в предложении все слова подогнать под один формат?
Т.е. если я ввожу "ИВАНОВ ИВАН ИВАНОВИЧ" или "ИВАнов ИваН ивановИЧ" и т.п выводилось потом в любом случае "Иванов Иван Иванович".
Так я первую букву первого слова делаю заглавную, но второе и третье остается маленьким.
C#
1
2
3
4
public static string FirstUpper(string str)
{
    return str.Substring(0, 1).ToUpper() + (str.Length > 1 ? str.Substring(1) : "");
}
Думаю как вариант надо искать в строке каждый пробел и делать ToUpper и ToLower в куске строки до него, но код весьма громоздкий получится. Может есть какая то встроенная функция или алгоритм оптимальнее?
Благодарю.
Ответ: Всем привет. Меня интересует самый первый вариант, если я правильно понял, то этот код
Javascript
1
2
3
4
public static string FirstUpper(string str)
{
    return str.Substring(0, 1).ToUpper() + (str.Length > 1 ? str.Substring(1) : "");
}
делает все буквы маленькими а первую в строке заглавную.
У меня есть вот такая штука <ul aria-expanded="true" class="collapse in"> как мне это все дело прикрутить к этому, что бы все буквы были меленькими а первая маленькая в строке?
Вопрос: Извлечение маленькой иконки из файла

Известно, в стандартном ico-файле ("вшитом" в любой файл Windows) присутствует как большая иконка (Large), так и маленькая (Small).
Метод Icon.ExtractAssociatedIcon("имя файла") извлекает большую иконку из файла.
Как извлечь маленькую?
(Методы API мне известны. Хотелось бы проделать сие методами VB.Net.)
Ответ: Yury Komar, пример
Сообщение от Yury Komar
от SoftIce
не извлекает иконок 16x16. Для этого нужно применять ExtractIconEx, а не ExtractIcon. Вообще-то решить вопрос средствами API не проблема. Просто странно как это разработчики VB.net функцию извлечения больших иконок предусмотрели (Icon.ExtractAssociatedIcon), а маленьких нет. Кстати, извлечь иконку из ассоциированного с каким-либо приложением файла (не exe-файла) функциями ExtractIconEx, ExtractIcon напрямую нельзя, проще использовать SHGetFileInfo.
Вопрос: Подскажите, как узнать количество маленьких букв в каждой строке из массива строк

Подскажите, какой метод или комбинацию методов использовать, чтобы у каждого элемента массива String, т.е. слова, узнать количество маленьких букв.
Может надо перевести в char, но я умею ток переводить одиночную String в char, а целый массив не догоняю как.
Пробовал так, но эт не правильно.
Java
1
2
3
4
5
6
7
8
9
 char[][] part = new char[str.length][];
 
        for(int i = 0; i < str.length; i++)
        {
            for(int j = 0; j < str[i].length(); j++)
            {
                part[i][j] = str[i].toCharArray();
            }
        }
Ответ: Используйте переменную - счетчик, которая инкрементируется(++) при каджом выполнении условия того, что элемент в слове это маленькая буква. По моему есть базовая функция isLowerCase(); - ссылка на документацию.
Так вот она возвращает true, если это буква нижнего регистра. Вот ей и пользуйтесь )

Добавлено через 13 минут
Вот пример:
Java
1
2
3
4
5
6
7
8
9
10
11
public class Main {
    public static void main(String[] args) {
        String s = "OdinDwaTri";
        char[] c = s.toCharArray();
        int increment = 0;
        for(int i = 0; i < c.length;i++){
            if(Character.isLowerCase(c[i]))increment++;
        }
        System.out.println("Букв нижнего регистра " + increment);
    }
}
Вопрос: Создание ярлыка программы на рабочем столе и в Пуск-Программы

Здравствуйте уважаемые программисты. Есть вопрос по созданию ярлыков на рабочем столе и в меню пуск->(все) программы. Нашел на просторах интернета вот такой код ():

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

Delphi
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
uses
Windows, Registry, ShlObj, ComObj, ActiveX;
 
type
  ShortcutType = (_DESKTOP, _PROGRAMS, _QUICKLAUNCH, _STARTMENU, _OTHERFOLDER);
 
function CreateShortcut(SourceFileName: string;
                       ALinkName : string;
                       Location: ShortcutType; // shortcut location
                       SubFolder,  // subfolder of location
                       WorkingDir, // working directory property of the shortcut
                       Parameters,
                       Description: string): //  description property of the shortcut
                       string;
const 
 SHELL_FOLDERS_ROOT = 'Software\MicroSoft\Windows\CurrentVersion\Explorer\Shell Folders';
 QUICK_LAUNCH_ROOT = 'Software\MicroSoft\Windows\CurrentVersion\GrpConv\MapGroups';
var
 MyObject: IUnknown;
 MySLink: IShellLink;
 MyPFile: IPersistFile;
 Directory, LinkName: string;
 WFileName: WideString;
 Reg: TRegistry;
begin
 try
   MyObject := CreateComObject(CLSID_ShellLink);
   MySLink := MyObject as IShellLink;
   MyPFile := MyObject as IPersistFile;
 
   MySLink.SetPath(PChar(SourceFileName));
   MySLink.SetArguments(PChar(Parameters));
   MySLink.SetDescription(PChar(Description));
 
   if ALinkName<>'' then LinkName:=ALinkName+'.lnk'
   else
   begin
     LinkName := ChangeFileExt(SourceFileName, '.lnk');
     LinkName := ExtractFileName(LinkName);
   end;
   // Quicklauch
   if Location = _QUICKLAUNCH then
   begin
     Reg := TRegistry.Create;
     Reg.RootKey := HKEY_CURRENT_USER;
     Reg.OpenKeyReadOnly(QUICK_LAUNCH_ROOT);
     try
       Directory := Reg.ReadString('Quick Launch');
     finally
       Reg.Free;
     end;
   end
   else
   // Other locations
   begin
     Reg := TRegistry.Create;
     Reg.RootKey := HKEY_CURRENT_USER;
     Reg.OpenKeyReadOnly(SHELL_FOLDERS_ROOT);
     try
     case Location of
       _OTHERFOLDER : Directory := SubFolder;
       _DESKTOP     : Directory := Reg.ReadString('Desktop');
       _PROGRAMS    : Directory := Reg.ReadString('Programs');
       _STARTMENU   : Directory := Reg.ReadString('Start Menu');
     end;
     finally
       Reg.Free;
     end;
   end;
 
   if Directory <> '' then
   begin
     if (SubFolder <> '') and (Location <> _OTHERFOLDER) then
       WFileName := Directory + '\' + SubFolder + '\' + LinkName
     else
       WFileName := Directory + '\' + LinkName;
 
     if WorkingDir = '' then
       MySLink.SetWorkingDirectory(PChar(ExtractFilePath(SourceFileName)))
     else
       MySLink.SetWorkingDirectory(PChar(WorkingDir));
 
     MyPFile.Save(PWChar(WFileName), False);
     Result := WFileName;
   end;
 except
   MessageDlg('Не могу создать ярлык!'
   +#13+#10+'Нет доступа.', mtWarning, [mbOK], 0);
 end;
end;


Немного его переделал, т.к. TRegIniFile не используется со времен Win95. Сделал маленькую программку чтобы этот код проверить, но при нажатии на кнопки ни чего не происходит, ярлыки не создаются, даже ошибок нет. Прикрепляю исходный код программки. Работаю в Delphi 7, ОС: Windows 7 Ultim x64. От Администратора запускал, безрезультатно.
Ответ: Я разобрался в чем проблема, было не правильно назначено имя для ярлыка. Правда в меню Пуск->Все программы (Win7) папка и ярлык в ней не создавались, создавался пустой ярлык в Меню Пуск->Все программы без подпапки. Так что я нашел отдельный компонент для создания ярлыков (WShortCut). Оставлю здесь и исходники тестовой программки и компонент (после установки компонент появляется в закладке Win32), может кому пригодится.

P.S. Компонент используется только для создания ярлыка в Пуск->Все программы.
Вопрос: Создание большого количества маленьких файлов

Не могли бы дать код простенькой программки, которая создавала бы большое количество маленьких текстовых файлов. Например задать создание 100000 файлов с именами 1.txt, 2.txt, 3.txt .....100000.txt. Количество файлов можно определить прямо в коде программы. В каждый файл можно записать какое-нибудь слово, пусть даже одно и то же (хотя если будут различия, то это лучше). Компилятор у меня gcc

ps Хотя не обязательно текстовых, главное, что бы они были мелкие (менее килобайта) и их в результате получилось много - сотни тысяч. Нужно для тестов.
Ответ: alexcoder, большое спасибо, работает.
А не подскажете, можно ли изменить размер файлов? В этом примере создаются файлы размером 204 байта. Можно ли создать размером к примеру 1 кБайт? Что в коде поменять? (я в программировании не спец)