ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

01.03.2009, 16:05
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
if not( Key in ['0'..'9'] ) then
Key := #0;
В евенте onkeydown
|
|
|

01.03.2009, 17:11
|
|
Познающий
Регистрация: 08.12.2008
Сообщений: 58
Провел на форуме: 153361
Репутация:
10
|
|
В каком ещё ивенте? Такое есть в паскале? помоему это в делафи , а мне в Pascal надо
|
|
|

01.03.2009, 19:36
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
Сообщение от Djezul
ребята у меня такой вопрос по паскалю , мне нужно чтобы когда пользователь вводил информацию происходила проверка вводит ли он в поле для цифр цифры или буквы, чтобы программа не вылетала а писала что нужно ввести правильный тип данных и снова предлагала ввести информацию. Как это можно реализовать?
while(true)
begin
try
забыл уже как на Delphi 
Вобщем просто тупо тут пробуешь сделать Val (если я не ошибаюсь, функция переводит из string в integer;
если
except
Извините вы ввели не числа 
end;
вобщем логика такова, я на дельфи уже год не пишу, даже больше, подзабыл
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

01.03.2009, 20:19
|
|
Новичок
Регистрация: 12.02.2008
Сообщений: 14
Провел на форуме: 203537
Репутация:
6
|
|
Простой клиент-сервер,запускается но меседж не выскакивает.Помогите найти ошибку.
Код:
var
Form1: TForm1;
tserv: TTcpServer;
tclient:TTcpClient;
t: string;
procedure TForm1.FormCreate(Sender: TObject);
begin
tserv:=TTcpServer.Create(NIL);
tserv.LocalPort:='1111';
tserv.Active:=True;
begin
repeat
sleep(500);
t:=tserv.Receiveln();
if t='test' then
MessageBox(0, 'test', 'test',0);
until true
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
tclient:=TTcpClient.Create(NIL);
tclient.RemoteHost:='127.0.0.1';
tclient.RemotePort:='1111';
tclient.Active:=True;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
tclient.Sendln('test');
end;
|
|
|

01.03.2009, 20:23
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
В паскале надо юзать val(st, int, code), где st- строка, int - целое число, code - код возврата( будет возвращать значение = 0 если нет ошибки, т.е. если у вас в строке чистое число)
гугли дальше 
|
|
|

01.03.2009, 20:24
|
|
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме: 3008839
Репутация:
1502
|
|
Сообщение от W!z@rD
while(true)
begin
try
забыл уже как на Delphi 
Вобщем просто тупо тут пробуешь сделать Val (если я не ошибаюсь, функция переводит из string в integer;
если
except
Извините вы ввели не числа 
end;
вобщем логика такова, я на дельфи уже год не пишу, даже больше, подзабыл
проще TryStrToInt )
__________________
Bedankt euch dafür bei euch selbst.
H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
|
|
|

01.03.2009, 20:26
|
|
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме: 2589211
Репутация:
151
|
|
Сообщение от W!z@rD
while(true)
begin
try
забыл уже как на Delphi 
Вобщем просто тупо тут пробуешь сделать Val (если я не ошибаюсь, функция переводит из string в integer;
если
except
Извините вы ввели не числа 
end;
вобщем логика такова, я на дельфи уже год не пишу, даже больше, подзабыл
Человек просил на Паскале, а не в Дельфи. Разве try-except имеет место в Паскале? Это ж не ООЯП, тут ток run-time error's могут иметь место
А вот насчёт val - это тру =)
Код:
repeat
readln(mystr);
Val(mystr, num_int, errorflag);
if errorflag = 0 then writeln('not a number');
until (errorflag <> 0);
Либо тупо проверяем все символы на принадлежность к [0..9] , но это малясь извращённее)
Нечто типо
Код:
readln(s);
c:=0;
for q:= 0 to length(s) do begin
for i:=0 to 9 do begin;
if copy(s,q,1)=IntToStr(i) then c:=c+1;
end;
end;
if c<>length(s) then writeln('Это не число') else writeln('Это число');
|
|
|

01.03.2009, 20:27
|
|
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме: 1229135
Репутация:
425
|
|
Сообщение от B1ack
Простой клиент-сервер,запускается но меседж не выскакивает.Помогите найти ошибку.
Код:
var
Form1: TForm1;
tserv: TTcpServer;
tclient:TTcpClient;
t: string;
procedure TForm1.FormCreate(Sender: TObject);
begin
tserv:=TTcpServer.Create(NIL);
tserv.LocalPort:='1111';
tserv.Active:=True;
begin
repeat
sleep(500);
t:=tserv.Receiveln();
if t='test' then
MessageBox(0, 'test', 'test',0);
until true
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
tclient:=TTcpClient.Create(NIL);
tclient.RemoteHost:='127.0.0.1';
tclient.RemotePort:='1111';
tclient.Active:=True;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
tclient.Sendln('test');
end;
помоему надо пользоваться TTcpServer.ReadLn();
|
|
|

01.03.2009, 20:51
|
|
Новичок
Регистрация: 12.02.2008
Сообщений: 14
Провел на форуме: 203537
Репутация:
6
|
|
Сообщение от AlexTheC0d3r
помоему надо пользоваться TTcpServer.ReadLn();
Undeclared identifier....
|
|
|

01.03.2009, 20:59
|
|
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме: 5111568
Репутация:
2399
|
|
Функция предназначена дла проверки значения строки:
Код:
type
TTypeStr = (tsString, tsDate, tsNumber);
function CheckString(const Value: string): TTypeStr;
begin
if StrToDateTimeDef(Value, 0) = 0 then
if StrToIntDef(Value, 0) = 0 then
Result := tsString
else
Result := tsNumber
else
Result := tsDate
end;
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|