Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Andrey0001
0 / 0 / 0
Регистрация: 07.10.2014
Сообщений: 49
1

Поток: проверка правильности ввода числа

22.06.2015, 15:11. Просмотров 252. Ответов 6
Метки нет (Все метки)

Создайте приложение, которое в фоновом режиме проверяет правильно введенные числа. На главной форме разместите два многострочных редактора. Вспомогательный поток должен просматривать введенные в первый редактор строки и находить в них неверно записанные числа (числом считается набор цифр, ограниченный с двух сторон пробелами). Если в наборе присутствуют символы отличные от цифр, то число считается неверно записанным. Неверно записанные числа должны выводиться во второй многострочный редактор
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2015, 15:11
Ответы с готовыми решениями:

проверка правильности ввода
Как проверить что Edit введено положительное число, а не буква или другие...

Проверка правильности ввода, очищение полей
Здравствуйте, помогите, пожалуйста, доработать приложение для конвертации...

Проверка правильности ввода в поле Edit
как сделать проверку правильности ввода в поле Edit, чтобы исключить...

Нужна процедура проверки правильности ввода действительного числа.
Нужно оформить процедуру проверки правильности ввода действительного числа в...

контроль правильности ввода
В программе должен быть реализован контроль правильности ввода цифровых...

6
Immo
186 / 185 / 92
Регистрация: 02.10.2012
Сообщений: 826
22.06.2015, 15:35 2
в чем проблемы?
0
Пытливый
1380 / 691 / 249
Регистрация: 29.05.2013
Сообщений: 3,116
22.06.2015, 19:51 3
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
type
  TScaner = class(TThread)
   ErrStr: String;
   procedure Execute; override;
   procedure ShowErr;
  end;
 
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    Scaner: TScaner;
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 Scaner := TScaner.Create;
end;
 
{ TScaner }
 
procedure TScaner.Execute;
Var SL: TStringList;
    i,j: Integer;
    Err: Boolean;
begin
 inherited;
 SL := TStringList.Create;
 SL.Delimiter := ' ';
 while not Terminated
 do begin
    SL.DelimitedText := Form1.Memo1.Text;
    ErrStr := '';
    for i := 0 to SL.Count - 1
    do begin
       Err := False;
       for j := 1 to Length(SL[i])
       do begin
          if not (SL[i][j] in ['0'..'9'])
          then begin
               Err := True;
               if ErrStr = ''
               then ErrStr := SL[i]
               else ErrStr := ErrStr + ' ' + SL[i];
               Break;
               end;
          end;
       if Err then Synchronize(ShowErr);
       end;
    Sleep(50);
    end;
 SL.Free;
end;
 
procedure TScaner.ShowErr;
begin
 if Form1.Memo2.Text <> ErrStr
 then Form1.Memo2.Text := ErrStr;
end;
0
mss
2632 / 2257 / 275
Регистрация: 24.12.2010
Сообщений: 13,725
22.06.2015, 19:56 4
Пытливый,
чтение из мемо ты выполняешь без синхронизации в доп.потоке, а запись в мемо - с синхронизацией в основном.

Где логика ?
0
Пытливый
1380 / 691 / 249
Регистрация: 29.05.2013
Сообщений: 3,116
22.06.2015, 20:04 5
В первом случае это ни на что не влияет, т.е. при этом не используются методы отвечающие за отрисовку, а вот во втором очень даже влияют
0
mss
2632 / 2257 / 275
Регистрация: 24.12.2010
Сообщений: 13,725
22.06.2015, 20:11 6
Цитата Сообщение от Пытливый Посмотреть сообщение
во втором очень даже влияют
Да нифига не влияют.
Убери синхронизацию и удивись.
Это "чудо" присуще как минимум TMemo и TProgressBar - выясни самостоятельно почему.

Но даже этот факт это не повод для фривольно-панибратского обращения к формам и их компонентам в классах доп.потоков.
0
Пытливый
1380 / 691 / 249
Регистрация: 29.05.2013
Сообщений: 3,116
22.06.2015, 20:29 7
В данном случае видимо вы правы. Код не без косяков. Ну пускай уже тогда автор разбирается, что надо сделать что-бы их побороть, а основную идею я дал.
0
22.06.2015, 20:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2015, 20:29

Проверка правильности дешифровки
Собственно у меня есть программа, которая дешифрует фразы, которые ей вводит...

Проверка правильности имени
Люди помогите написать программу, для проверки правильности вводимого имени в...

Проверка правильности расстановок скобок
Здраствуйте, нужна ваша помощ. Задание такое: проверить правильность...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru